home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-07-27 | 27.3 KB | [TEXT/MPCC] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Thu Jul 27 08:35:45 1995, modified Thu Jul 27 08:35:45 1995, creator 'MPCC', type ASCII, 27209 bytes "MiniDriverTest.c" , at 0x6ac9 410 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPCC] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 10 4d 69 6e 69 44 72 | 69 76 65 72 54 65 73 74 |..MiniDr|iverTest|
|00000010| 2e 63 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.c......|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 43 | 43 01 00 00 00 00 00 00 |.TEXTMPC|C.......|
|00000050| 00 00 00 00 00 6a 49 00 | 00 01 9a ac 3d 38 a1 ac |.....jI.|....=8..|
|00000060| 3d 38 a1 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |=8......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 cb 89 00 00 |........|........|
|00000080| 2f 2a 09 09 09 09 09 09 | 09 09 09 4d 69 6e 69 44 |/*......|...MiniD|
|00000090| 72 69 76 65 72 54 65 73 | 74 2e 63 09 09 09 09 09 |riverTes|t.c.....|
|000000a0| 09 09 09 2a 2f 0d 2f 2a | 0d 20 2a 20 4d 69 6e 69 |...*/./*|. * Mini|
|000000b0| 44 72 69 76 65 72 54 65 | 73 74 2e 63 0d 20 2a 20 |DriverTe|st.c. * |
|000000c0| 43 6f 70 79 72 69 67 68 | 74 20 a9 20 31 39 39 34 |Copyrigh|t . 1994|
|000000d0| 2d 39 35 20 41 70 70 6c | 65 20 43 6f 6d 70 75 74 |-95 Appl|e Comput|
|000000e0| 65 72 20 49 6e 63 2e 20 | 41 6c 6c 20 52 69 67 68 |er Inc. |All Righ|
|000000f0| 74 73 20 52 65 73 65 72 | 76 65 64 2e 0d 20 2a 2f |ts Reser|ved.. */|
|00000100| 0d 2f 2a 09 2e 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |./*..___|________|
|00000110| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000120| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000130| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000140| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000150| 5f 5f 5f 5f 5f 5f 5f 5f | 2e 0d 20 20 09 7c 20 54 |________|.. .| T|
|00000160| 68 69 73 20 69 73 20 61 | 20 76 65 72 79 20 73 69 |his is a| very si|
|00000170| 6d 70 6c 65 20 74 65 73 | 74 20 70 72 6f 67 72 61 |mple tes|t progra|
|00000180| 6d 20 66 6f 72 20 74 68 | 65 20 50 43 49 20 73 61 |m for th|e PCI sa|
|00000190| 6d 70 6c 65 20 64 72 69 | 76 65 72 2e 20 49 74 20 |mple dri|ver. It |
|000001a0| 68 61 73 20 6e 6f 74 20 | 62 65 65 6e 09 09 7c 0d |has not |been..|.|
|000001b0| 09 7c 20 63 6f 6d 70 69 | 6c 65 64 20 66 6f 72 2c |.| compi|led for,|
|000001c0| 20 6f 72 20 74 65 73 74 | 65 64 20 69 6e 2c 20 36 | or test|ed in, 6|
|000001d0| 38 30 30 30 20 65 6d 75 | 6c 61 74 69 6f 6e 20 6d |8000 emu|lation m|
|000001e0| 6f 64 65 2e 20 49 74 20 | 69 73 20 61 6c 73 6f 20 |ode. It |is also |
|000001f0| 70 72 65 74 74 79 20 75 | 67 6c 79 3a 20 69 74 20 |pretty u|gly: it |
|00000200| 77 61 73 09 7c 0d 09 7c | 20 77 72 69 74 74 65 6e |was.|..|| written|
|00000210| 20 71 75 69 63 6b 6c 79 | 2c 20 61 6e 64 20 77 68 | quickly|, and wh|
|00000220| 69 6c 65 20 49 20 77 61 | 73 20 64 65 62 75 67 67 |ile I wa|s debugg|
|00000230| 69 6e 67 20 74 68 65 20 | 64 72 69 76 65 72 2e 20 |ing the |driver. |
|00000240| 49 74 20 69 73 20 6e 6f | 74 20 61 20 70 72 69 7a |It is no|t a priz|
|00000250| 65 20 65 78 61 6d 70 6c | 65 09 7c 0d 09 7c 20 6f |e exampl|e.|..| o|
|00000260| 66 20 70 72 6f 64 75 63 | 74 69 6f 6e 20 73 6f 66 |f produc|tion sof|
|00000270| 74 77 61 72 65 2e 20 41 | 6c 6c 20 6f 75 74 70 75 |tware. A|ll outpu|
|00000280| 74 20 69 73 20 77 72 69 | 74 74 65 6e 20 74 6f 20 |t is wri|tten to |
|00000290| 74 68 65 20 4c 6f 67 4c | 69 62 72 61 72 79 2e 09 |the LogL|ibrary..|
|000002a0| 09 09 09 09 7c 0d 09 7c | 09 09 09 09 09 09 09 09 |....|..||........|
|000002b0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 7c 0d 09 |........|.....|..|
|000002c0| 7c 20 57 69 74 68 20 6e | 6f 20 64 65 76 69 63 65 || With n|o device|
|000002d0| 73 20 61 74 74 61 63 68 | 65 64 2c 20 65 61 63 68 |s attach|ed, each|
|000002e0| 20 63 79 63 6c 65 20 28 | 6b 53 43 53 49 54 72 69 | cycle (|kSCSITri|
|000002f0| 61 6c 73 29 20 74 61 6b | 65 73 20 61 62 6f 75 74 |als) tak|es about|
|00000300| 20 31 35 20 73 65 63 6f | 6e 64 73 2e 09 09 7c 0d | 15 seco|nds...|.|
|00000310| 09 2e 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..______|________|
|00000320| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000330| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000340| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000350| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________|
|00000360| 5f 5f 5f 5f 5f 2e 0d 20 | 2a 2f 0d 23 64 65 66 69 |_____.. |*/.#defi|
|00000370| 6e 65 20 54 45 53 54 5f | 44 52 49 56 45 52 09 09 |ne TEST_|DRIVER..|
|00000380| 09 09 31 0d 23 69 6e 63 | 6c 75 64 65 20 3c 4e 43 |..1.#inc|lude <NC|
|00000390| 52 44 72 69 76 65 72 50 | 72 69 76 61 74 65 2e 68 |RDriverP|rivate.h|
|000003a0| 3e 0d 23 69 6e 63 6c 75 | 64 65 20 3c 44 65 76 69 |>.#inclu|de <Devi|
|000003b0| 63 65 73 2e 68 3e 0d 23 | 69 6e 63 6c 75 64 65 20 |ces.h>.#|include |
|000003c0| 3c 46 6f 6e 74 73 2e 68 | 3e 0d 23 69 6e 63 6c 75 |<Fonts.h|>.#inclu|
|000003d0| 64 65 20 3c 54 6f 6f 6c | 55 74 69 6c 73 2e 68 3e |de <Tool|Utils.h>|
|000003e0| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 53 65 67 4c 6f |.#includ|e <SegLo|
|000003f0| 61 64 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |ad.h>.#i|nclude <|
|00000400| 53 43 53 49 2e 68 3e 0d | 23 69 6e 63 6c 75 64 65 |SCSI.h>.|#include|
|00000410| 20 22 4d 61 63 53 43 53 | 49 43 6f 6d 6d 61 6e 64 | "MacSCS|ICommand|
|00000420| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 4c 6f |.h".#inc|lude "Lo|
|00000430| 67 4c 69 62 72 61 72 79 | 2e 68 22 0d 0d 23 69 66 |gLibrary|.h"..#if|
|00000440| 6e 64 65 66 20 46 41 4c | 53 45 0d 23 64 65 66 69 |ndef FAL|SE.#defi|
|00000450| 6e 65 20 46 41 4c 53 45 | 09 09 09 09 30 0d 23 64 |ne FALSE|....0.#d|
|00000460| 65 66 69 6e 65 20 54 52 | 55 45 09 09 09 09 31 0d |efine TR|UE....1.|
|00000470| 23 65 6e 64 69 66 0d 0d | 23 64 65 66 69 6e 65 20 |#endif..|#define |
|00000480| 6b 46 69 72 73 74 53 43 | 53 49 54 61 72 67 65 74 |kFirstSC|SITarget|
|00000490| 49 44 09 30 0d 23 64 65 | 66 69 6e 65 20 6b 4d 61 |ID.0.#de|fine kMa|
|000004a0| 78 53 43 53 49 54 61 72 | 67 65 74 49 44 09 37 0d |xSCSITar|getID.7.|
|000004b0| 23 64 65 66 69 6e 65 20 | 6b 53 43 53 49 54 72 69 |#define |kSCSITri|
|000004c0| 61 6c 73 09 09 09 31 09 | 09 09 2f 2a 20 2d 31 20 |als...1.|../* -1 |
|000004d0| 74 6f 20 65 78 63 6c 75 | 64 65 2c 20 30 20 74 6f |to exclu|de, 0 to|
|000004e0| 20 72 75 6e 20 66 6f 72 | 65 76 65 72 09 2a 2f 0d | run for|ever.*/.|
|000004f0| 23 64 65 66 69 6e 65 20 | 6b 49 53 52 54 72 69 61 |#define |kISRTria|
|00000500| 6c 73 09 09 09 31 09 09 | 09 2f 2a 20 2d 31 20 74 |ls...1..|./* -1 t|
|00000510| 6f 20 65 78 63 6c 75 64 | 65 2c 20 30 20 74 6f 20 |o exclud|e, 0 to |
|00000520| 72 75 6e 20 66 6f 72 65 | 76 65 72 09 2a 2f 0d 23 |run fore|ver.*/.#|
|00000530| 64 65 66 69 6e 65 20 6b | 46 69 72 73 74 42 6c 6f |define k|FirstBlo|
|00000540| 63 6b 09 09 09 31 30 30 | 30 0d 23 64 65 66 69 6e |ck...100|0.#defin|
|00000550| 65 20 6b 4c 61 73 74 42 | 6c 6f 63 6b 09 09 09 31 |e kLastB|lock...1|
|00000560| 30 30 0d 2f 2a 0d 20 2a | 20 69 66 20 6b 4d 69 6e |00./*. *| if kMin|
|00000570| 42 6c 6f 63 6b 73 20 3e | 6b 4d 61 78 42 6c 6f 63 |Blocks >|kMaxBloc|
|00000580| 6b 73 2c 20 74 68 65 20 | 74 72 61 6e 73 66 65 72 |ks, the |transfer|
|00000590| 20 6c 65 6e 67 74 68 20 | 77 69 6c 6c 20 63 68 61 | length |will cha|
|000005a0| 6e 67 65 20 77 69 74 68 | 20 65 61 63 68 20 72 65 |nge with| each re|
|000005b0| 71 75 65 73 74 2e 0d 20 | 2a 2f 0d 23 64 65 66 69 |quest.. |*/.#defi|
|000005c0| 6e 65 20 6b 4d 69 6e 42 | 6c 6f 63 6b 73 09 09 09 |ne kMinB|locks...|
|000005d0| 31 09 09 09 2f 2a 20 4d | 75 73 74 20 62 65 20 61 |1.../* M|ust be a|
|000005e0| 74 20 6c 65 61 73 74 20 | 31 09 09 09 09 2a 2f 0d |t least |1....*/.|
|000005f0| 2f 2a 0d 20 2a ca 42 65 | 63 61 75 73 65 20 77 65 |/*. *.Be|cause we|
|00000600| 20 75 73 65 20 61 20 36 | 2d 62 79 74 65 20 72 65 | use a 6|-byte re|
|00000610| 61 64 20 63 6f 6d 6d 61 | 6e 64 2c 20 6b 4d 61 78 |ad comma|nd, kMax|
|00000620| 42 6c 6f 63 6b 73 20 6d | 61 79 20 6e 6f 74 20 65 |Blocks m|ay not e|
|00000630| 78 63 65 65 64 20 31 32 | 38 0d 20 2a 2f 0d 23 64 |xceed 12|8. */.#d|
|00000640| 65 66 69 6e 65 20 6b 4d | 61 78 42 6c 6f 63 6b 73 |efine kM|axBlocks|
|00000650| 09 09 09 36 34 09 09 09 | 2f 2a 20 53 68 6f 75 6c |...64...|/* Shoul|
|00000660| 64 20 62 65 20 3e 3d 20 | 6b 4d 69 6e 42 6c 6f 63 |d be >= |kMinBloc|
|00000670| 6b 73 09 09 09 2a 2f 0d | 23 64 65 66 69 6e 65 20 |ks...*/.|#define |
|00000680| 6b 54 69 6d 65 6f 75 74 | 09 09 09 32 30 30 30 4c |kTimeout|...2000L|
|00000690| 0d 23 64 65 66 69 6e 65 | 20 6b 52 65 61 64 42 75 |.#define| kReadBu|
|000006a0| 66 66 65 72 53 69 7a 65 | 09 09 32 30 34 38 09 09 |fferSize|..2048..|
|000006b0| 2f 2a 20 42 69 67 20 65 | 6e 6f 75 67 68 20 66 6f |/* Big e|nough fo|
|000006c0| 72 20 43 44 2d 52 4f 4d | 73 09 09 09 2a 2f 0d 0d |r CD-ROM|s...*/..|
|000006d0| 73 68 6f 72 74 09 09 09 | 09 09 09 67 44 72 69 76 |short...|...gDriv|
|000006e0| 65 72 52 65 66 4e 75 6d | 3b 0d 73 68 6f 72 74 09 |erRefNum|;.short.|
|000006f0| 09 09 09 09 09 67 55 6e | 69 74 49 6e 64 65 78 3b |.....gUn|itIndex;|
|00000700| 0d 73 68 6f 72 74 09 09 | 09 09 09 09 67 53 43 53 |.short..|....gSCS|
|00000710| 49 54 61 72 67 65 74 49 | 44 3b 0d 73 68 6f 72 74 |ITargetI|D;.short|
|00000720| 09 09 09 09 09 09 67 53 | 43 53 49 54 61 72 67 65 |......gS|CSITarge|
|00000730| 74 4c 55 4e 20 3d 20 30 | 3b 0d 73 68 6f 72 74 09 |tLUN = 0|;.short.|
|00000740| 09 09 09 09 09 67 54 72 | 69 61 6c 73 3b 0d 42 6f |.....gTr|ials;.Bo|
|00000750| 6f 6c 65 61 6e 09 09 09 | 09 09 09 67 51 75 69 74 |olean...|...gQuit|
|00000760| 4e 6f 77 3b 0d 4c 6f 67 | 52 65 63 6f 72 64 50 74 |Now;.Log|RecordPt|
|00000770| 72 09 09 09 09 67 4c 6f | 67 52 65 63 6f 72 64 50 |r....gLo|gRecordP|
|00000780| 74 72 3b 0d 4d 65 6e 75 | 48 61 6e 64 6c 65 09 09 |tr;.Menu|Handle..|
|00000790| 09 09 09 67 41 70 70 6c | 65 4d 65 6e 75 3b 0d 4d |...gAppl|eMenu;.M|
|000007a0| 65 6e 75 48 61 6e 64 6c | 65 09 09 09 09 09 67 46 |enuHandl|e.....gF|
|000007b0| 69 6c 65 4d 65 6e 75 3b | 0d 45 76 65 6e 74 52 65 |ileMenu;|.EventRe|
|000007c0| 63 6f 72 64 09 09 09 09 | 09 67 45 76 65 6e 74 52 |cord....|.gEventR|
|000007d0| 65 63 6f 72 64 3b 0d 42 | 6f 6f 6c 65 61 6e 09 09 |ecord;.B|oolean..|
|000007e0| 09 09 09 09 67 49 6e 46 | 6f 72 65 67 72 6f 75 6e |....gInF|oregroun|
|000007f0| 64 3b 0d 49 4f 50 61 72 | 61 6d 09 09 09 09 09 09 |d;.IOPar|am......|
|00000800| 67 49 4f 50 61 72 61 6d | 3b 0d 4e 43 52 53 43 53 |gIOParam|;.NCRSCS|
|00000810| 49 50 61 72 61 6d 09 09 | 09 09 67 4e 43 52 53 43 |IParam..|..gNCRSC|
|00000820| 53 49 50 61 72 61 6d 3b | 0d 50 74 72 09 09 09 09 |SIParam;|.Ptr....|
|00000830| 09 09 09 67 52 65 61 64 | 42 75 66 66 65 72 50 74 |...gRead|BufferPt|
|00000840| 72 3b 0d 53 74 72 32 35 | 35 09 09 09 09 09 09 67 |r;.Str25|5......g|
|00000850| 44 72 69 76 65 72 4e 61 | 6d 65 3b 0d 75 6e 73 69 |DriverNa|me;.unsi|
|00000860| 67 6e 65 64 20 6c 6f 6e | 67 09 09 09 09 67 52 65 |gned lon|g....gRe|
|00000870| 61 64 42 75 66 66 65 72 | 53 69 7a 65 3b 0d 75 6e |adBuffer|Size;.un|
|00000880| 73 69 67 6e 65 64 20 6c | 6f 6e 67 09 09 09 09 67 |signed l|ong....g|
|00000890| 43 75 72 72 65 6e 74 42 | 6c 6f 63 6b 4c 65 6e 67 |CurrentB|lockLeng|
|000008a0| 74 68 3b 0d 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |th;.unsi|gned lon|
|000008b0| 67 09 09 09 09 67 44 65 | 76 69 63 65 53 69 7a 65 |g....gDe|viceSize|
|000008c0| 3b 0d 0d 4f 53 45 72 72 | 09 09 09 09 09 09 4f 70 |;..OSErr|......Op|
|000008d0| 65 6e 4e 65 78 74 44 65 | 76 69 63 65 28 76 6f 69 |enNextDe|vice(voi|
|000008e0| 64 29 3b 0d 76 6f 69 64 | 09 09 09 09 09 09 44 6f |d);.void|......Do|
|000008f0| 45 76 65 6e 74 4c 6f 6f | 70 28 76 6f 69 64 29 3b |EventLoo|p(void);|
|00000900| 0d 76 6f 69 64 09 09 09 | 09 09 09 44 6f 4d 6f 75 |.void...|...DoMou|
|00000910| 73 65 45 76 65 6e 74 28 | 76 6f 69 64 29 3b 0d 76 |seEvent(|void);.v|
|00000920| 6f 69 64 09 09 09 09 09 | 09 44 6f 43 6f 6d 6d 61 |oid.....|.DoComma|
|00000930| 6e 64 28 0d 09 09 6c 6f | 6e 67 09 09 09 09 09 6d |nd(...lo|ng.....m|
|00000940| 65 6e 75 43 68 6f 69 63 | 65 0d 09 29 3b 0d 23 64 |enuChoic|e..);.#d|
|00000950| 65 66 69 6e 65 20 4d 45 | 4e 55 5f 41 70 70 6c 65 |efine ME|NU_Apple|
|00000960| 09 09 09 31 0d 23 64 65 | 66 69 6e 65 20 4d 45 4e |...1.#de|fine MEN|
|00000970| 55 5f 46 69 6c 65 09 09 | 09 32 35 36 0d 23 64 65 |U_File..|.256.#de|
|00000980| 66 69 6e 65 20 6b 41 70 | 70 6c 65 41 62 6f 75 74 |fine kAp|pleAbout|
|00000990| 09 09 09 31 0d 23 64 65 | 66 69 6e 65 20 6b 46 69 |...1.#de|fine kFi|
|000009a0| 6c 65 51 75 69 74 09 09 | 09 31 0d 0d 2f 2a 0d 20 |leQuit..|.1../*. |
|000009b0| 2a 20 53 43 53 49 20 63 | 6f 6d 6d 61 6e 64 73 0d |* SCSI c|ommands.|
|000009c0| 20 2a 2f 0d 76 6f 69 64 | 09 09 09 09 09 09 44 6f | */.void|......Do|
|000009d0| 44 65 76 69 63 65 54 65 | 73 74 28 76 6f 69 64 29 |DeviceTe|st(void)|
|000009e0| 3b 0d 76 6f 69 64 09 09 | 09 09 09 09 44 6f 49 53 |;.void..|....DoIS|
|000009f0| 52 54 65 73 74 28 76 6f | 69 64 29 3b 0d 4f 53 45 |RTest(vo|id);.OSE|
|00000a00| 72 72 09 09 09 09 09 09 | 44 6f 4f 6e 65 49 53 52 |rr......|DoOneISR|
|00000a10| 54 65 73 74 28 76 6f 69 | 64 29 3b 0d 4f 53 45 72 |Test(voi|d);.OSEr|
|00000a20| 72 09 09 09 09 09 09 44 | 6f 42 75 73 52 65 73 65 |r......D|oBusRese|
|00000a30| 74 28 76 6f 69 64 29 3b | 0d 4f 53 45 72 72 09 09 |t(void);|.OSErr..|
|00000a40| 09 09 09 09 44 6f 54 65 | 73 74 55 6e 69 74 52 65 |....DoTe|stUnitRe|
|00000a50| 61 64 79 28 76 6f 69 64 | 29 3b 0d 4f 53 45 72 72 |ady(void|);.OSErr|
|00000a60| 09 09 09 09 09 09 44 6f | 44 65 76 69 63 65 49 6e |......Do|DeviceIn|
|00000a70| 71 75 69 72 79 28 76 6f | 69 64 29 3b 0d 4f 53 45 |quiry(vo|id);.OSE|
|00000a80| 72 72 09 09 09 09 09 09 | 44 6f 52 65 61 64 43 61 |rr......|DoReadCa|
|00000a90| 70 61 63 69 74 79 28 76 | 6f 69 64 29 3b 0d 4f 53 |pacity(v|oid);.OS|
|00000aa0| 45 72 72 09 09 09 09 09 | 09 44 6f 52 65 61 64 41 |Err.....|.DoReadA|
|00000ab0| 6c 6c 42 6c 6f 63 6b 73 | 28 76 6f 69 64 29 3b 0d |llBlocks|(void);.|
|00000ac0| 4f 53 45 72 72 09 09 09 | 09 09 09 44 6f 52 65 61 |OSErr...|...DoRea|
|00000ad0| 64 42 6c 6f 63 6b 28 0d | 09 09 75 6e 73 69 67 6e |dBlock(.|..unsign|
|00000ae0| 65 64 20 6c 6f 6e 67 09 | 09 09 62 6c 6f 63 6b 4e |ed long.|..blockN|
|00000af0| 75 6d 62 65 72 2c 0d 09 | 09 75 6e 73 69 67 6e 65 |umber,..|.unsigne|
|00000b00| 64 20 6c 6f 6e 67 09 09 | 09 6e 42 6c 6f 63 6b 73 |d long..|.nBlocks|
|00000b10| 2c 0d 09 09 42 6f 6f 6c | 65 61 6e 09 09 09 09 09 |,...Bool|ean.....|
|00000b20| 64 75 6d 70 42 6c 6f 63 | 6b 0d 09 29 3b 0d 42 6f |dumpBloc|k..);.Bo|
|00000b30| 6f 6c 65 61 6e 09 09 09 | 09 09 09 44 6f 52 65 71 |olean...|...DoReq|
|00000b40| 75 65 73 74 53 65 6e 73 | 65 28 09 09 09 2f 2a 20 |uestSens|e(.../* |
|00000b50| 54 52 55 45 20 69 66 20 | 55 6e 69 74 20 41 74 74 |TRUE if |Unit Att|
|00000b60| 65 6e 74 69 6f 6e 09 09 | 2a 2f 0d 09 09 75 6e 73 |ention..|*/...uns|
|00000b70| 69 67 6e 65 64 20 73 68 | 6f 72 74 09 09 09 74 61 |igned sh|ort...ta|
|00000b80| 72 67 65 74 49 44 2c 09 | 09 09 2f 2a 20 53 43 53 |rgetID,.|../* SCS|
|00000b90| 49 20 42 75 73 20 49 44 | 09 09 09 09 09 2a 2f 0d |I Bus ID|.....*/.|
|00000ba0| 09 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |..unsign|ed short|
|00000bb0| 09 09 09 74 61 72 67 65 | 74 4c 55 4e 09 09 09 2f |...targe|tLUN.../|
|00000bc0| 2a 20 53 43 53 49 20 4c | 55 4e 20 2d 2d 20 6e 6f |* SCSI L|UN -- no|
|00000bd0| 74 20 73 75 70 70 6f 72 | 74 65 64 09 2a 2f 0d 09 |t suppor|ted.*/..|
|00000be0| 29 3b 0d 4f 53 45 72 72 | 09 09 09 09 09 09 44 6f |);.OSErr|......Do|
|00000bf0| 49 4f 52 75 6e 64 6f 77 | 6e 28 76 6f 69 64 29 3b |IORundow|n(void);|
|00000c00| 0d 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 09 |.unsigne|d long..|
|00000c10| 09 09 53 43 53 49 47 65 | 74 43 6f 6d 6d 61 6e 64 |..SCSIGe|tCommand|
|00000c20| 4c 65 6e 67 74 68 28 0d | 09 09 63 6f 6e 73 74 20 |Length(.|..const |
|00000c30| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 09 09 2a |unsigned| char..*|
|00000c40| 63 6d 64 42 6c 6f 63 6b | 0d 09 29 3b 0d 42 6f 6f |cmdBlock|..);.Boo|
|00000c50| 6c 65 61 6e 09 09 09 09 | 09 09 53 68 6f 77 52 65 |lean....|..ShowRe|
|00000c60| 71 75 65 73 74 53 65 6e | 73 65 28 09 09 2f 2a 20 |questSen|se(../* |
|00000c70| 54 52 55 45 20 69 66 20 | 55 6e 69 74 20 41 74 74 |TRUE if |Unit Att|
|00000c80| 65 6e 74 69 6f 6e 09 09 | 2a 2f 0d 09 09 75 6e 73 |ention..|*/...uns|
|00000c90| 69 67 6e 65 64 20 73 68 | 6f 72 74 09 09 09 74 61 |igned sh|ort...ta|
|00000ca0| 72 67 65 74 49 44 2c 09 | 09 09 2f 2a 20 53 43 53 |rgetID,.|../* SCS|
|00000cb0| 49 20 42 75 73 20 49 44 | 09 09 09 09 09 2a 2f 0d |I Bus ID|.....*/.|
|00000cc0| 09 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |..unsign|ed short|
|00000cd0| 09 09 09 74 61 72 67 65 | 74 4c 55 4e 2c 09 09 09 |...targe|tLUN,...|
|00000ce0| 2f 2a 20 53 43 53 49 20 | 4c 55 4e 20 2d 2d 20 6e |/* SCSI |LUN -- n|
|00000cf0| 6f 74 20 73 75 70 70 6f | 72 74 65 64 09 2a 2f 0d |ot suppo|rted.*/.|
|00000d00| 09 09 4f 53 45 72 72 09 | 09 09 09 09 63 61 6c 6c |..OSErr.|....call|
|00000d10| 53 74 61 74 75 73 2c 09 | 09 09 2f 2a 20 44 6f 44 |Status,.|../* DoD|
|00000d20| 72 69 76 65 72 49 4f 20 | 52 65 71 75 65 73 74 20 |riverIO |Request |
|00000d30| 53 65 6e 73 65 09 09 2a | 2f 0d 09 09 63 6f 6e 73 |Sense..*|/...cons|
|00000d40| 74 20 53 43 53 49 5f 53 | 65 6e 73 65 5f 44 61 74 |t SCSI_S|ense_Dat|
|00000d50| 61 09 2a 73 65 6e 73 65 | 2c 0d 09 09 75 6e 73 69 |a.*sense|,...unsi|
|00000d60| 67 6e 65 64 20 6c 6f 6e | 67 09 09 09 61 63 74 75 |gned lon|g...actu|
|00000d70| 61 6c 54 72 61 6e 73 66 | 65 72 43 6f 75 6e 74 0d |alTransf|erCount.|
|00000d80| 09 29 3b 0d 23 64 65 66 | 69 6e 65 20 41 70 70 65 |.);.#def|ine Appe|
|00000d90| 6e 64 43 68 61 72 28 72 | 65 73 75 6c 74 2c 20 74 |ndChar(r|esult, t|
|00000da0| 68 65 43 68 61 72 29 09 | 64 6f 20 7b 09 09 09 09 |heChar).|do {....|
|00000db0| 5c 0d 09 09 53 74 72 69 | 6e 67 50 74 72 09 09 5f |\...Stri|ngPtr.._|
|00000dc0| 64 73 74 20 3d 20 28 72 | 65 73 75 6c 74 29 3b 09 |dst = (r|esult);.|
|00000dd0| 09 09 09 5c 0d 09 09 5f | 64 73 74 5b 2b 2b 5f 64 |...\..._|dst[++_d|
|00000de0| 73 74 5b 30 5d 5d 20 3d | 20 74 68 65 43 68 61 72 |st[0]] =| theChar|
|00000df0| 3b 09 09 09 09 09 09 5c | 0d 09 7d 20 77 68 69 6c |;......\|..} whil|
|00000e00| 65 20 28 30 29 0d 76 6f | 69 64 09 09 09 09 09 09 |e (0).vo|id......|
|00000e10| 53 68 6f 77 4d 65 6d 6f | 72 79 28 0d 09 09 63 6f |ShowMemo|ry(...co|
|00000e20| 6e 73 74 20 50 74 72 09 | 09 09 09 6d 65 6d 53 74 |nst Ptr.|...memSt|
|00000e30| 61 72 74 2c 0d 09 09 75 | 6e 73 69 67 6e 65 64 20 |art,...u|nsigned |
|00000e40| 6c 6f 6e 67 09 09 09 62 | 79 74 65 43 6f 75 6e 74 |long...b|yteCount|
|00000e50| 0d 09 29 3b 0d 0d 76 6f | 69 64 09 09 09 09 09 09 |..);..vo|id......|
|00000e60| 41 70 70 65 6e 64 48 65 | 78 4c 65 61 64 69 6e 67 |AppendHe|xLeading|
|00000e70| 5a 65 72 6f 73 28 0d 09 | 09 53 74 72 69 6e 67 50 |Zeros(..|.StringP|
|00000e80| 74 72 09 09 09 09 72 65 | 73 75 6c 74 2c 0d 09 09 |tr....re|sult,...|
|00000e90| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 09 09 09 |unsigned| long...|
|00000ea0| 76 61 6c 75 65 2c 0d 09 | 09 73 68 6f 72 74 09 09 |value,..|.short..|
|00000eb0| 09 09 09 66 69 65 6c 64 | 57 69 64 74 68 0d 09 29 |...field|Width..)|
|00000ec0| 3b 0d 76 6f 69 64 09 09 | 09 09 09 09 41 70 70 65 |;.void..|....Appe|
|00000ed0| 6e 64 53 69 67 6e 65 64 | 28 0d 09 09 53 74 72 69 |ndSigned|(...Stri|
|00000ee0| 6e 67 50 74 72 09 09 09 | 09 72 65 73 75 6c 74 2c |ngPtr...|.result,|
|00000ef0| 0d 09 09 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 09 |...signe|d long..|
|00000f00| 09 09 76 61 6c 75 65 0d | 09 29 3b 0d 76 6f 69 64 |..value.|.);.void|
|00000f10| 09 09 09 09 09 09 41 70 | 70 65 6e 64 55 6e 73 69 |......Ap|pendUnsi|
|00000f20| 67 6e 65 64 28 0d 09 09 | 53 74 72 69 6e 67 50 74 |gned(...|StringPt|
|00000f30| 72 09 09 09 09 72 65 73 | 75 6c 74 2c 0d 09 09 75 |r....res|ult,...u|
|00000f40| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 09 09 09 76 |nsigned |long...v|
|00000f50| 61 6c 75 65 0d 09 29 3b | 0d 0d 2f 2a 0d 20 2a 20 |alue..);|../*. * |
|00000f60| 4e 43 52 20 44 72 69 76 | 65 72 20 63 6f 6d 6d 61 |NCR Driv|er comma|
|00000f70| 6e 64 73 0d 20 2a 2f 0d | 4f 53 45 72 72 09 09 09 |nds. */.|OSErr...|
|00000f80| 09 09 09 44 6f 4e 43 52 | 44 72 69 76 65 72 49 4f |...DoNCR|DriverIO|
|00000f90| 57 69 74 68 53 65 6e 73 | 65 28 0d 09 09 75 6e 73 |WithSens|e(...uns|
|00000fa0| 69 67 6e 65 64 20 73 68 | 6f 72 74 09 09 09 64 72 |igned sh|ort...dr|
|00000fb0| 69 76 65 72 41 63 74 69 | 6f 6e 2c 09 09 2f 2a 20 |iverActi|on,../* |
|00000fc0| 49 6e 70 75 74 2c 20 6f | 75 74 70 75 74 2c 20 6f |Input, o|utput, o|
|00000fd0| 72 20 6e 6f 74 68 69 6e | 67 09 2a 2f 0d 09 09 75 |r nothin|g.*/...u|
|00000fe0| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 09 09 09 |nsigned |short...|
|00000ff0| 74 61 72 67 65 74 49 44 | 2c 09 09 09 2f 2a 20 53 |targetID|,.../* S|
|00001000| 43 53 49 20 42 75 73 20 | 49 44 09 09 09 09 09 2a |CSI Bus |ID.....*|
|00001010| 2f 0d 09 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |/...unsi|gned sho|
|00001020| 72 74 09 09 09 74 61 72 | 67 65 74 4c 55 4e 2c 09 |rt...tar|getLUN,.|
|00001030| 09 09 2f 2a 20 53 43 53 | 49 20 4c 55 4e 20 2d 2d |../* SCS|I LUN --|
|00001040| 20 6e 6f 74 20 73 75 70 | 70 6f 72 74 65 64 09 2a | not sup|ported.*|
|00001050| 2f 0d 09 09 63 6f 6e 73 | 74 20 75 6e 73 69 67 6e |/...cons|t unsign|
|00001060| 65 64 20 63 68 61 72 09 | 09 2a 73 63 73 69 43 6f |ed char.|.*scsiCo|
|00001070| 6d 6d 61 6e 64 2c 09 09 | 2f 2a 20 53 43 53 49 20 |mmand,..|/* SCSI |
|00001080| 43 6f 6d 6d 61 6e 64 20 | 69 74 73 65 6c 66 09 09 |Command |itself..|
|00001090| 09 2a 2f 0d 09 09 50 74 | 72 09 09 09 09 09 09 64 |.*/...Pt|r......d|
|000010a0| 61 74 61 42 75 66 66 65 | 72 50 74 72 2c 09 09 2f |ataBuffe|rPtr,../|
|000010b0| 2a 20 55 73 65 72 20 64 | 61 74 61 20 62 75 66 66 |* User d|ata buff|
|000010c0| 65 72 20 6f 72 20 4e 55 | 4c 4c 20 09 2a 2f 0d 09 |er or NU|LL .*/..|
|000010d0| 09 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 09 |.unsigne|d long..|
|000010e0| 09 74 72 61 6e 73 66 65 | 72 43 6f 75 6e 74 2c 0d |.transfe|rCount,.|
|000010f0| 09 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 09 |..unsign|ed long.|
|00001100| 09 09 2a 61 63 74 75 61 | 6c 54 72 61 6e 73 66 65 |..*actua|lTransfe|
|00001110| 72 43 6f 75 6e 74 0d 09 | 29 3b 0d 4f 53 45 72 72 |rCount..|);.OSErr|
|00001120| 09 09 09 09 09 09 44 6f | 4e 43 52 44 72 69 76 65 |......Do|NCRDrive|
|00001130| 72 49 4f 28 0d 09 09 75 | 6e 73 69 67 6e 65 64 20 |rIO(...u|nsigned |
|00001140| 73 68 6f 72 74 09 09 09 | 64 72 69 76 65 72 41 63 |short...|driverAc|
|00001150| 74 69 6f 6e 2c 09 09 2f | 2a 20 49 6e 70 75 74 2c |tion,../|* Input,|
|00001160| 20 6f 75 74 70 75 74 2c | 20 6f 72 20 6e 6f 74 68 | output,| or noth|
|00001170| 69 6e 67 09 2a 2f 0d 09 | 09 75 6e 73 69 67 6e 65 |ing.*/..|.unsigne|
|00001180| 64 20 73 68 6f 72 74 09 | 09 09 74 61 72 67 65 74 |d short.|..target|
|00001190| 49 44 2c 09 09 09 2f 2a | 20 53 43 53 49 20 42 75 |ID,.../*| SCSI Bu|
|000011a0| 73 20 49 44 09 09 09 09 | 09 2a 2f 0d 09 09 75 6e |s ID....|.*/...un|
|000011b0| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 09 09 09 74 |signed s|hort...t|
|000011c0| 61 72 67 65 74 4c 55 4e | 2c 09 09 09 2f 2a 20 53 |argetLUN|,.../* S|
|000011d0| 43 53 49 20 4c 55 4e 20 | 2d 2d 20 6e 6f 74 20 73 |CSI LUN |-- not s|
|000011e0| 75 70 70 6f 72 74 65 64 | 09 2a 2f 0d 09 09 63 6f |upported|.*/...co|
|000011f0| 6e 73 74 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |nst unsi|gned cha|
|00001200| 72 09 09 2a 73 63 73 69 | 43 6f 6d 6d 61 6e 64 2c |r..*scsi|Command,|
|00001210| 09 09 2f 2a 20 53 43 53 | 49 20 43 6f 6d 6d 61 6e |../* SCS|I Comman|
|00001220| 64 20 69 74 73 65 6c 66 | 09 09 09 2a 2f 0d 09 09 |d itself|...*/...|
|00001230| 50 74 72 09 09 09 09 09 | 09 64 61 74 61 42 75 66 |Ptr.....|.dataBuf|
|00001240| 66 65 72 50 74 72 2c 09 | 09 2f 2a 20 55 73 65 72 |ferPtr,.|./* User|
|00001250| 20 64 61 74 61 20 62 75 | 66 66 65 72 20 6f 72 20 | data bu|ffer or |
|00001260| 4e 55 4c 4c 20 09 2a 2f | 0d 09 09 75 6e 73 69 67 |NULL .*/|...unsig|
|00001270| 6e 65 64 20 6c 6f 6e 67 | 09 09 09 74 72 61 6e 73 |ned long|...trans|
|00001280| 66 65 72 43 6f 75 6e 74 | 2c 0d 09 09 75 6e 73 69 |ferCount|,...unsi|
|00001290| 67 6e 65 64 20 6c 6f 6e | 67 09 09 09 2a 61 63 74 |gned lon|g...*act|
|000012a0| 75 61 6c 54 72 61 6e 73 | 66 65 72 43 6f 75 6e 74 |ualTrans|ferCount|
|000012b0| 0d 09 29 3b 0d 2f 2a 0d | 20 2a 20 41 20 68 61 6e |..);./*.| * A han|
|000012c0| 64 79 20 6d 61 63 72 6f | 20 74 6f 20 63 6c 65 61 |dy macro| to clea|
|000012d0| 72 20 61 20 28 73 6d 61 | 6c 6c 29 20 73 74 72 75 |r a (sma|ll) stru|
|000012e0| 63 74 75 72 65 2e 0d 20 | 2a 2f 0d 76 6f 69 64 09 |cture.. |*/.void.|
|000012f0| 09 09 09 09 09 43 6c 65 | 61 72 4d 65 6d 6f 72 79 |.....Cle|arMemory|
|00001300| 28 0d 09 09 72 65 67 69 | 73 74 65 72 20 50 74 72 |(...regi|ster Ptr|
|00001310| 09 09 09 6d 65 6d 50 74 | 72 2c 0d 09 09 72 65 67 |...memPt|r,...reg|
|00001320| 69 73 74 65 72 20 53 69 | 7a 65 09 09 09 6d 65 6d |ister Si|ze...mem|
|00001330| 53 69 7a 65 0d 09 29 3b | 0d 23 75 6e 64 65 66 20 |Size..);|.#undef |
|00001340| 43 4c 45 41 52 0d 23 64 | 65 66 69 6e 65 20 43 4c |CLEAR.#d|efine CL|
|00001350| 45 41 52 28 77 68 61 74 | 29 09 43 6c 65 61 72 4d |EAR(what|).ClearM|
|00001360| 65 6d 6f 72 79 28 28 50 | 74 72 29 20 26 77 68 61 |emory((P|tr) &wha|
|00001370| 74 2c 20 73 69 7a 65 6f | 66 20 77 68 61 74 29 0d |t, sizeo|f what).|
|00001380| 0d 23 64 65 66 69 6e 65 | 20 53 68 6f 77 53 74 72 |.#define| ShowStr|
|00001390| 69 6e 67 28 73 74 72 69 | 6e 67 29 20 57 72 69 74 |ing(stri|ng) Writ|
|000013a0| 65 4c 6f 67 45 6e 74 72 | 79 28 67 4c 6f 67 52 65 |eLogEntr|y(gLogRe|
|000013b0| 63 6f 72 64 50 74 72 2c | 20 27 54 65 73 74 27 2c |cordPtr,| 'Test',|
|000013c0| 20 4c 6f 67 53 74 72 69 | 6e 67 46 6f 72 6d 61 74 | LogStri|ngFormat|
|000013d0| 2c 20 28 73 74 72 69 6e | 67 29 29 0d 23 64 65 66 |, (strin|g)).#def|
|000013e0| 69 6e 65 20 53 68 6f 77 | 53 74 61 74 75 73 53 74 |ine Show|StatusSt|
|000013f0| 72 69 6e 67 28 73 74 61 | 74 75 73 2c 20 73 74 72 |ring(sta|tus, str|
|00001400| 69 6e 67 29 20 09 09 09 | 09 09 5c 0d 09 57 72 69 |ing) ...|..\..Wri|
|00001410| 74 65 4c 6f 67 45 6e 74 | 72 79 28 67 4c 6f 67 52 |teLogEnt|ry(gLogR|
|00001420| 65 63 6f 72 64 50 74 72 | 2c 20 27 54 65 73 74 27 |ecordPtr|, 'Test'|
|00001430| 2c 09 09 09 09 09 5c 0d | 09 09 4c 6f 67 46 6f 72 |,.....\.|..LogFor|
|00001440| 6d 61 74 32 28 6b 4c 6f | 67 46 6f 72 6d 61 74 53 |mat2(kLo|gFormatS|
|00001450| 69 67 6e 65 64 2c 20 6b | 4c 6f 67 46 6f 72 6d 61 |igned, k|LogForma|
|00001460| 74 53 74 72 69 6e 67 29 | 2c 09 09 5c 0d 09 09 28 |tString)|,..\...(|
|00001470| 73 74 61 74 75 73 29 2c | 20 28 73 74 72 69 6e 67 |status),| (string|
|00001480| 29 29 0d 23 64 65 66 69 | 6e 65 20 53 68 6f 77 48 |)).#defi|ne ShowH|
|00001490| 65 78 28 76 61 6c 75 65 | 2c 20 73 74 72 69 6e 67 |ex(value|, string|
|000014a0| 29 09 09 09 09 09 09 09 | 09 5c 0d 09 57 72 69 74 |).......|.\..Writ|
|000014b0| 65 4c 6f 67 45 6e 74 72 | 79 28 09 09 09 09 09 09 |eLogEntr|y(......|
|000014c0| 09 09 09 09 09 5c 0d 09 | 09 67 4c 6f 67 52 65 63 |.....\..|.gLogRec|
|000014d0| 6f 72 64 50 74 72 2c 20 | 27 54 65 73 74 27 2c 09 |ordPtr, |'Test',.|
|000014e0| 09 09 09 09 09 09 09 5c | 0d 09 09 4c 6f 67 46 6f |.......\|...LogFo|
|000014f0| 72 6d 61 74 32 28 6b 4c | 6f 67 46 6f 72 6d 61 74 |rmat2(kL|ogFormat|
|00001500| 41 64 64 72 65 73 73 2c | 20 6b 4c 6f 67 46 6f 72 |Address,| kLogFor|
|00001510| 6d 61 74 53 74 72 69 6e | 67 29 2c 09 5c 0d 09 09 |matStrin|g),.\...|
|00001520| 28 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 29 20 |(unsigne|d long) |
|00001530| 28 76 61 6c 75 65 29 2c | 09 09 09 09 09 09 09 5c |(value),|.......\|
|00001540| 0d 09 09 28 73 74 72 69 | 6e 67 29 09 09 09 09 09 |...(stri|ng).....|
|00001550| 09 09 09 09 09 09 5c 0d | 09 29 0d 23 64 65 66 69 |......\.|.).#defi|
|00001560| 6e 65 20 53 68 6f 77 44 | 65 63 69 6d 61 6c 28 76 |ne ShowD|ecimal(v|
|00001570| 61 6c 75 65 2c 20 73 74 | 72 69 6e 67 29 09 09 09 |alue, st|ring)...|
|00001580| 09 09 09 09 5c 0d 09 57 | 72 69 74 65 4c 6f 67 45 |....\..W|riteLogE|
|00001590| 6e 74 72 79 28 09 09 09 | 09 09 09 09 09 09 09 09 |ntry(...|........|
|000015a0| 5c 0d 09 09 67 4c 6f 67 | 52 65 63 6f 72 64 50 74 |\...gLog|RecordPt|
|000015b0| 72 2c 20 27 54 65 73 74 | 27 2c 09 09 09 09 09 09 |r, 'Test|',......|
|000015c0| 09 09 5c 0d 09 09 4c 6f | 67 46 6f 72 6d 61 74 32 |..\...Lo|gFormat2|
|000015d0| 28 6b 4c 6f 67 46 6f 72 | 6d 61 74 53 69 67 6e 65 |(kLogFor|matSigne|
|000015e0| 64 2c 20 6b 4c 6f 67 46 | 6f 72 6d 61 74 53 74 72 |d, kLogF|ormatStr|
|000015f0| 69 6e 67 29 2c 09 09 5c | 0d 09 09 28 73 69 67 6e |ing),..\|...(sign|
|00001600| 65 64 20 6c 6f 6e 67 29 | 20 28 76 61 6c 75 65 29 |ed long)| (value)|
|00001610| 2c 09 09 09 09 09 09 09 | 09 5c 0d 09 09 28 73 74 |,.......|.\...(st|
|00001620| 72 69 6e 67 29 09 09 09 | 09 09 09 09 09 09 09 09 |ring)...|........|
|00001630| 5c 0d 09 29 0d 0d 76 6f | 69 64 0d 6d 61 69 6e 28 |\..)..vo|id.main(|
|00001640| 76 6f 69 64 29 0d 7b 0d | 09 09 4f 53 45 72 72 09 |void).{.|..OSErr.|
|00001650| 09 09 09 73 74 61 74 75 | 73 3b 0d 09 09 73 68 6f |...statu|s;...sho|
|00001660| 72 74 09 09 09 09 69 3b | 0d 09 09 0d 09 09 67 4c |rt....i;|......gL|
|00001670| 6f 67 52 65 63 6f 72 64 | 50 74 72 20 3d 20 4d 61 |ogRecord|Ptr = Ma|
|00001680| 6b 65 4c 6f 67 52 65 63 | 6f 72 64 28 22 4d 69 6e |keLogRec|ord("Min|
|00001690| 69 44 72 69 76 65 72 54 | 65 73 74 22 2c 20 31 32 |iDriverT|est", 12|
|000016a0| 38 29 3b 0d 09 09 53 68 | 6f 77 53 74 72 69 6e 67 |8);...Sh|owString|
|000016b0| 28 22 5c 70 48 65 6c 6c | 6f 20 57 6f 72 6c 64 21 |("\pHell|o World!|
|000016c0| 22 29 3b 0d 09 09 4d 61 | 78 41 70 70 6c 5a 6f 6e |");...Ma|xApplZon|
|000016d0| 65 28 29 3b 0d 09 09 49 | 6e 69 74 47 72 61 66 28 |e();...I|nitGraf(|
|000016e0| 26 71 64 2e 74 68 65 50 | 6f 72 74 29 3b 0d 09 09 |&qd.theP|ort);...|
|000016f0| 49 6e 69 74 46 6f 6e 74 | 73 28 29 3b 0d 09 09 49 |InitFont|s();...I|
|00001700| 6e 69 74 57 69 6e 64 6f | 77 73 28 29 3b 0d 09 09 |nitWindo|ws();...|
|00001710| 49 6e 69 74 4d 65 6e 75 | 73 28 29 3b 0d 09 09 54 |InitMenu|s();...T|
|00001720| 45 49 6e 69 74 28 29 3b | 0d 09 09 49 6e 69 74 44 |EInit();|...InitD|
|00001730| 69 61 6c 6f 67 73 28 30 | 29 3b 0d 09 09 66 6f 72 |ialogs(0|);...for|
|00001740| 20 28 69 20 3d 20 30 3b | 20 69 20 3c 20 38 3b 20 | (i = 0;| i < 8; |
|00001750| 69 2b 2b 29 0d 09 09 09 | 4d 6f 72 65 4d 61 73 74 |i++)....|MoreMast|
|00001760| 65 72 73 28 29 3b 0d 09 | 09 48 4e 6f 50 75 72 67 |ers();..|.HNoPurg|
|00001770| 65 28 28 48 61 6e 64 6c | 65 29 20 47 65 74 43 75 |e((Handl|e) GetCu|
|00001780| 72 73 6f 72 28 77 61 74 | 63 68 43 75 72 73 6f 72 |rsor(wat|chCursor|
|00001790| 29 29 3b 0d 09 09 53 65 | 74 43 75 72 73 6f 72 28 |));...Se|tCursor(|
|000017a0| 2a 47 65 74 43 75 72 73 | 6f 72 28 77 61 74 63 68 |*GetCurs|or(watch|
|000017b0| 43 75 72 73 6f 72 29 29 | 3b 0d 09 09 67 52 65 61 |Cursor))|;...gRea|
|000017c0| 64 42 75 66 66 65 72 53 | 69 7a 65 20 3d 20 6b 52 |dBufferS|ize = kR|
|000017d0| 65 61 64 42 75 66 66 65 | 72 53 69 7a 65 20 2a 20 |eadBuffe|rSize * |
|000017e0| 6b 4d 61 78 42 6c 6f 63 | 6b 73 3b 0d 09 09 67 52 |kMaxBloc|ks;...gR|
|000017f0| 65 61 64 42 75 66 66 65 | 72 50 74 72 20 3d 20 4e |eadBuffe|rPtr = N|
|00001800| 65 77 50 74 72 43 6c 65 | 61 72 28 67 52 65 61 64 |ewPtrCle|ar(gRead|
|00001810| 42 75 66 66 65 72 53 69 | 7a 65 29 3b 0d 09 09 69 |BufferSi|ze);...i|
|00001820| 66 20 28 67 52 65 61 64 | 42 75 66 66 65 72 50 74 |f (gRead|BufferPt|
|00001830| 72 20 3d 3d 20 4e 55 4c | 4c 29 20 7b 0d 09 09 09 |r == NUL|L) {....|
|00001840| 53 68 6f 77 53 74 72 69 | 6e 67 28 22 5c 70 4e 6f |ShowStri|ng("\pNo|
|00001850| 20 6d 65 6d 6f 72 79 20 | 66 6f 72 20 72 65 61 64 | memory |for read|
|00001860| 20 62 75 66 66 65 72 22 | 29 3b 0d 09 09 09 45 78 | buffer"|);....Ex|
|00001870| 69 74 54 6f 53 68 65 6c | 6c 28 29 3b 0d 09 09 7d |itToShel|l();...}|
|00001880| 0d 09 09 67 41 70 70 6c | 65 4d 65 6e 75 20 3d 20 |...gAppl|eMenu = |
|00001890| 4e 65 77 4d 65 6e 75 28 | 4d 45 4e 55 5f 41 70 70 |NewMenu(|MENU_App|
|000018a0| 6c 65 2c 20 22 5c 70 5c | 30 32 34 22 29 3b 0d 09 |le, "\p\|024");..|
|000018b0| 09 41 70 70 65 6e 64 4d | 65 6e 75 28 67 41 70 70 |.AppendM|enu(gApp|
|000018c0| 6c 65 4d 65 6e 75 2c 20 | 22 5c 70 28 4e 6f 20 41 |leMenu, |"\p(No A|
|000018d0| 62 6f 75 74 3b 28 2d 22 | 29 3b 0d 09 09 41 70 70 |bout;(-"|);...App|
|000018e0| 65 6e 64 52 65 73 4d 65 | 6e 75 28 67 41 70 70 6c |endResMe|nu(gAppl|
|000018f0| 65 4d 65 6e 75 2c 20 27 | 44 52 56 52 27 29 3b 0d |eMenu, '|DRVR');.|
|00001900| 09 09 67 46 69 6c 65 4d | 65 6e 75 20 3d 20 4e 65 |..gFileM|enu = Ne|
|00001910| 77 4d 65 6e 75 28 4d 45 | 4e 55 5f 46 69 6c 65 2c |wMenu(ME|NU_File,|
|00001920| 20 22 5c 70 46 69 6c 65 | 22 29 3b 0d 09 09 41 70 | "\pFile|");...Ap|
|00001930| 70 65 6e 64 4d 65 6e 75 | 28 67 46 69 6c 65 4d 65 |pendMenu|(gFileMe|
|00001940| 6e 75 2c 20 22 5c 70 51 | 75 69 74 2f 51 22 29 3b |nu, "\pQ|uit/Q");|
|00001950| 0d 09 09 49 6e 73 65 72 | 74 4d 65 6e 75 28 67 41 |...Inser|tMenu(gA|
|00001960| 70 70 6c 65 4d 65 6e 75 | 2c 20 30 29 3b 0d 09 09 |ppleMenu|, 0);...|
|00001970| 49 6e 73 65 72 74 4d 65 | 6e 75 28 67 46 69 6c 65 |InsertMe|nu(gFile|
|00001980| 4d 65 6e 75 2c 20 30 29 | 3b 0d 09 09 44 72 61 77 |Menu, 0)|;...Draw|
|00001990| 4d 65 6e 75 42 61 72 28 | 29 3b 0d 09 09 66 6f 72 |MenuBar(|);...for|
|000019a0| 20 28 3b 20 28 73 74 61 | 74 75 73 20 3d 20 4f 70 | (; (sta|tus = Op|
|000019b0| 65 6e 4e 65 78 74 44 65 | 76 69 63 65 28 29 29 20 |enNextDe|vice()) |
|000019c0| 3d 3d 20 6e 6f 45 72 72 | 3b 20 67 55 6e 69 74 49 |== noErr|; gUnitI|
|000019d0| 6e 64 65 78 2b 2b 29 20 | 7b 0d 09 09 09 69 66 20 |ndex++) |{....if |
|000019e0| 28 73 74 61 74 75 73 20 | 21 3d 20 6e 6f 45 72 72 |(status |!= noErr|
|000019f0| 29 0d 09 09 09 09 53 68 | 6f 77 53 74 61 74 75 73 |).....Sh|owStatus|
|00001a00| 53 74 72 69 6e 67 28 73 | 74 61 74 75 73 2c 20 67 |String(s|tatus, g|
|00001a10| 44 72 69 76 65 72 4e 61 | 6d 65 29 3b 0d 09 09 09 |DriverNa|me);....|
|00001a20| 65 6c 73 65 20 7b 0d 09 | 09 09 09 44 6f 44 65 76 |else {..|...DoDev|
|00001a30| 69 63 65 54 65 73 74 28 | 29 3b 0d 09 09 09 09 53 |iceTest(|);.....S|
|00001a40| 68 6f 77 53 74 72 69 6e | 67 28 22 5c 70 44 72 69 |howStrin|g("\pDri|
|00001a50| 76 65 72 20 74 65 73 74 | 20 63 6f 6d 70 6c 65 74 |ver test| complet|
|00001a60| 65 22 29 3b 0d 09 09 09 | 7d 0d 09 09 7d 0d 09 09 |e");....|}...}...|
|00001a70| 53 68 6f 77 53 74 72 69 | 6e 67 28 22 5c 70 41 6c |ShowStri|ng("\pAl|
|00001a80| 6c 20 74 65 73 74 73 20 | 63 6f 6d 70 6c 65 74 65 |l tests |complete|
|00001a90| 22 29 3b 0d 09 09 45 78 | 69 74 54 6f 53 68 65 6c |");...Ex|itToShel|
|00001aa0| 6c 28 29 3b 0d 7d 0d 0d | 2f 2a 0d 20 2a 20 46 69 |l();.}..|/*. * Fi|
|00001ab0| 6e 64 20 74 68 65 20 6e | 65 78 74 20 64 65 76 69 |nd the n|ext devi|
|00001ac0| 63 65 20 28 61 66 74 65 | 72 20 74 68 69 73 20 6f |ce (afte|r this o|
|00001ad0| 6e 65 29 20 74 68 61 74 | 20 68 61 73 20 6f 75 72 |ne) that| has our|
|00001ae0| 20 64 65 76 69 63 65 20 | 6e 61 6d 65 2e 0d 20 2a | device |name.. *|
|00001af0| 2f 0d 4f 53 45 72 72 0d | 4f 70 65 6e 4e 65 78 74 |/.OSErr.|OpenNext|
|00001b00| 44 65 76 69 63 65 28 76 | 6f 69 64 29 0d 7b 0d 09 |Device(v|oid).{..|
|00001b10| 09 4f 53 45 72 72 09 09 | 09 09 09 73 74 61 74 75 |.OSErr..|...statu|
|00001b20| 73 3b 0d 09 09 49 74 65 | 6d 43 6f 75 6e 74 09 09 |s;...Ite|mCount..|
|00001b30| 09 09 69 74 65 6d 73 3b | 0d 09 09 44 72 69 76 65 |..items;|...Drive|
|00001b40| 72 52 65 66 4e 75 6d 09 | 09 09 72 65 66 4e 75 6d |rRefNum.|..refNum|
|00001b50| 3b 0d 09 09 55 6e 69 74 | 4e 75 6d 62 65 72 09 09 |;...Unit|Number..|
|00001b60| 09 09 75 6e 75 73 65 64 | 55 6e 69 74 4e 75 6d 62 |..unused|UnitNumb|
|00001b70| 65 72 3b 0d 09 09 44 72 | 69 76 65 72 46 6c 61 67 |er;...Dr|iverFlag|
|00001b80| 73 09 09 09 09 64 72 69 | 76 65 72 46 6c 61 67 73 |s....dri|verFlags|
|00001b90| 3b 0d 09 09 44 72 69 76 | 65 72 4f 70 65 6e 43 6f |;...Driv|erOpenCo|
|00001ba0| 75 6e 74 09 09 09 64 72 | 69 76 65 72 4f 70 65 6e |unt...dr|iverOpen|
|00001bb0| 43 6f 75 6e 74 3b 0d 09 | 09 52 65 67 45 6e 74 72 |Count;..|.RegEntr|
|00001bc0| 79 49 44 09 09 09 09 64 | 65 76 69 63 65 49 44 3b |yID....d|eviceID;|
|00001bd0| 0d 09 09 43 46 72 61 67 | 48 46 53 4c 6f 63 61 74 |...CFrag|HFSLocat|
|00001be0| 6f 72 09 09 09 63 46 72 | 61 67 48 46 53 4c 6f 63 |or...cFr|agHFSLoc|
|00001bf0| 61 74 6f 72 3b 0d 09 09 | 43 46 72 61 67 43 6f 6e |ator;...|CFragCon|
|00001c00| 6e 65 63 74 69 6f 6e 49 | 44 09 09 63 46 72 61 67 |nectionI|D..cFrag|
|00001c10| 43 6f 6e 6e 65 63 74 69 | 6f 6e 49 44 3b 0d 09 09 |Connecti|onID;...|
|00001c20| 44 72 69 76 65 72 45 6e | 74 72 79 50 6f 69 6e 74 |DriverEn|tryPoint|
|00001c30| 50 74 72 09 09 66 72 61 | 67 6d 65 6e 74 4d 61 69 |Ptr..fra|gmentMai|
|00001c40| 6e 3b 0d 09 09 44 72 69 | 76 65 72 44 65 73 63 72 |n;...Dri|verDescr|
|00001c50| 69 70 74 69 6f 6e 09 09 | 64 72 69 76 65 72 44 65 |iption..|driverDe|
|00001c60| 73 63 72 69 70 74 69 6f | 6e 3b 0d 0d 09 09 66 6f |scriptio|n;....fo|
|00001c70| 72 20 28 3b 3b 20 67 55 | 6e 69 74 49 6e 64 65 78 |r (;; gU|nitIndex|
|00001c80| 20 2b 3d 20 31 29 20 7b | 0d 09 09 09 69 66 20 28 | += 1) {|....if (|
|00001c90| 67 55 6e 69 74 49 6e 64 | 65 78 20 3e 20 48 69 67 |gUnitInd|ex > Hig|
|00001ca0| 68 65 73 74 55 6e 69 74 | 4e 75 6d 62 65 72 28 29 |hestUnit|Number()|
|00001cb0| 29 20 7b 0d 09 09 09 09 | 73 74 61 74 75 73 20 3d |) {.....|status =|
|00001cc0| 20 62 61 64 55 6e 69 74 | 45 72 72 3b 0d 09 09 09 | badUnit|Err;....|
|00001cd0| 09 62 72 65 61 6b 3b 0d | 09 09 09 7d 0d 09 09 09 |.break;.|...}....|
|00001ce0| 69 74 65 6d 73 20 3d 20 | 31 3b 0d 09 09 09 73 74 |items = |1;....st|
|00001cf0| 61 74 75 73 20 3d 20 4c | 6f 6f 6b 75 70 44 72 69 |atus = L|ookupDri|
|00001d00| 76 65 72 73 28 67 55 6e | 69 74 49 6e 64 65 78 2c |vers(gUn|itIndex,|
|00001d10| 20 67 55 6e 69 74 49 6e | 64 65 78 2c 20 46 41 4c | gUnitIn|dex, FAL|
|00001d20| 53 45 2c 20 26 69 74 65 | 6d 73 2c 20 26 72 65 66 |SE, &ite|ms, &ref|
|00001d30| 4e 75 6d 29 3b 0d 09 09 | 09 69 66 20 28 73 74 61 |Num);...|.if (sta|
|00001d40| 74 75 73 20 21 3d 20 6e | 6f 45 72 72 29 0d 09 09 |tus != n|oErr)...|
|00001d50| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 69 66 20 28 |..break;|....if (|
|00001d60| 69 74 65 6d 73 20 3d 3d | 20 31 29 20 7b 0d 09 09 |items ==| 1) {...|
|00001d70| 09 09 2f 2a 0d 09 09 09 | 09 20 2a 20 57 65 20 68 |../*....|. * We h|
|00001d80| 61 76 65 20 66 6f 75 6e | 64 20 61 20 64 72 69 76 |ave foun|d a driv|
|00001d90| 65 72 20 28 62 75 74 20 | 6e 6f 74 20 6e 65 63 65 |er (but |not nece|
|00001da0| 73 73 61 72 69 6c 79 20 | 6f 75 72 73 29 2e 0d 09 |ssarily |ours)...|
|00001db0| 09 09 09 20 2a 2f 0d 09 | 09 09 09 73 74 61 74 75 |... */..|...statu|
|00001dc0| 73 20 3d 20 47 65 74 44 | 72 69 76 65 72 49 6e 66 |s = GetD|riverInf|
|00001dd0| 6f 72 6d 61 74 69 6f 6e | 28 0d 09 09 09 09 09 09 |ormation|(.......|
|00001de0| 09 72 65 66 4e 75 6d 2c | 0d 09 09 09 09 09 09 09 |.refNum,|........|
|00001df0| 26 75 6e 75 73 65 64 55 | 6e 69 74 4e 75 6d 62 65 |&unusedU|nitNumbe|
|00001e00| 72 2c 0d 09 09 09 09 09 | 09 09 26 64 72 69 76 65 |r,......|..&drive|
|00001e10| 72 46 6c 61 67 73 2c 0d | 09 09 09 09 09 09 09 26 |rFlags,.|.......&|
|00001e20| 64 72 69 76 65 72 4f 70 | 65 6e 43 6f 75 6e 74 2c |driverOp|enCount,|
|00001e30| 0d 09 09 09 09 09 09 09 | 67 44 72 69 76 65 72 4e |........|gDriverN|
|00001e40| 61 6d 65 2c 0d 09 09 09 | 09 09 09 09 26 64 65 76 |ame,....|....&dev|
|00001e50| 69 63 65 49 44 2c 0d 09 | 09 09 09 09 09 09 26 63 |iceID,..|......&c|
|00001e60| 46 72 61 67 48 46 53 4c | 6f 63 61 74 6f 72 2c 0d |FragHFSL|ocator,.|
|00001e70| 09 09 09 09 09 09 09 26 | 63 46 72 61 67 43 6f 6e |.......&|cFragCon|
|00001e80| 6e 65 63 74 69 6f 6e 49 | 44 2c 0d 09 09 09 09 09 |nectionI|D,......|
|00001e90| 09 09 26 66 72 61 67 6d | 65 6e 74 4d 61 69 6e 2c |..&fragm|entMain,|
|00001ea0| 0d 09 09 09 09 09 09 09 | 26 64 72 69 76 65 72 44 |........|&driverD|
|00001eb0| 65 73 63 72 69 70 74 69 | 6f 6e 0d 09 09 09 09 09 |escripti|on......|
|00001ec0| 09 29 3b 0d 09 09 09 09 | 69 66 20 28 73 74 61 74 |.);.....|if (stat|
|00001ed0| 75 73 20 21 3d 20 6e 6f | 45 72 72 29 0d 09 09 09 |us != no|Err)....|
|00001ee0| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 09 69 66 20 |..break;|.....if |
|00001ef0| 28 50 53 74 72 43 6d 70 | 28 67 44 72 69 76 65 72 |(PStrCmp|(gDriver|
|00001f00| 4e 61 6d 65 2c 20 6b 44 | 72 69 76 65 72 4e 61 6d |Name, kD|riverNam|
|00001f10| 65 50 53 74 72 69 6e 67 | 29 20 3d 3d 20 30 29 20 |ePString|) == 0) |
|00001f20| 7b 0d 09 09 09 09 09 2f | 2a 0d 09 09 09 09 09 20 |{....../|*...... |
|00001f30| 2a 20 54 68 69 73 20 69 | 73 20 6f 75 72 20 64 65 |* This i|s our de|
|00001f40| 76 69 63 65 2e 20 54 72 | 79 20 74 6f 20 6f 70 65 |vice. Tr|y to ope|
|00001f50| 6e 20 69 74 2e 20 28 54 | 68 69 73 20 70 72 65 73 |n it. (T|his pres|
|00001f60| 75 6d 65 73 20 74 68 61 | 74 20 74 68 65 0d 09 09 |umes tha|t the...|
|00001f70| 09 09 09 20 2a 20 64 72 | 69 76 65 72 20 77 61 73 |... * dr|iver was|
|00001f80| 20 69 6e 73 74 61 6c 6c | 65 64 20 22 6c 6f 61 64 | install|ed "load|
|00001f90| 20 6f 6e 20 64 69 73 63 | 6f 76 65 72 79 2e 22 29 | on disc|overy.")|
|00001fa0| 0d 09 09 09 09 09 20 2a | 2f 0d 09 09 09 09 09 73 |...... *|/......s|
|00001fb0| 74 61 74 75 73 20 3d 20 | 4f 70 65 6e 49 6e 73 74 |tatus = |OpenInst|
|00001fc0| 61 6c 6c 65 64 44 72 69 | 76 65 72 28 72 65 66 4e |alledDri|ver(refN|
|00001fd0| 75 6d 2c 20 33 29 3b 20 | 2f 2a 20 41 6c 6c 6f 77 |um, 3); |/* Allow|
|00001fe0| 20 72 65 61 64 2f 77 72 | 69 74 65 09 2a 2f 0d 09 | read/wr|ite.*/..|
|00001ff0| 09 09 09 09 69 66 20 28 | 73 74 61 74 75 73 20 21 |....if (|status !|
|00002000| 3d 20 6e 6f 45 72 72 29 | 20 7b 0d 09 09 09 09 09 |= noErr)| {......|
|00002010| 09 53 68 6f 77 53 74 61 | 74 75 73 53 74 72 69 6e |.ShowSta|tusStrin|
|00002020| 67 28 73 74 61 74 75 73 | 2c 20 22 5c 70 43 61 6e |g(status|, "\pCan|
|00002030| 27 74 20 6f 70 65 6e 20 | 69 6e 73 74 61 6c 6c 65 |'t open |installe|
|00002040| 64 20 64 72 69 76 65 72 | 22 29 3b 0d 09 09 09 09 |d driver|");.....|
|00002050| 09 09 63 6f 6e 74 69 6e | 75 65 3b 0d 09 09 09 09 |..contin|ue;.....|
|00002060| 09 7d 0d 09 09 09 09 09 | 65 6c 73 65 20 7b 0d 09 |.}......|else {..|
|00002070| 09 09 09 09 09 67 44 72 | 69 76 65 72 52 65 66 4e |.....gDr|iverRefN|
|00002080| 75 6d 20 3d 20 72 65 66 | 4e 75 6d 3b 0d 09 09 09 |um = ref|Num;....|
|00002090| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 09 09 7d |...break|;......}|
|000020a0| 0d 09 09 09 09 7d 20 2f | 2a 20 49 66 20 74 68 69 |.....} /|* If thi|
|000020b0| 73 20 69 73 20 6f 75 72 | 20 64 65 76 69 63 65 20 |s is our| device |
|000020c0| 2a 2f 0d 09 09 09 7d 20 | 2f 2a 20 49 66 20 4c 6f |*/....} |/* If Lo|
|000020d0| 6f 6b 75 70 44 72 69 76 | 65 72 73 20 66 6f 75 6e |okupDriv|ers foun|
|000020e0| 64 20 61 20 64 65 76 69 | 63 65 20 2a 2f 0d 09 09 |d a devi|ce */...|
|000020f0| 7d 20 2f 2a 20 55 6e 69 | 74 20 6e 75 6d 62 65 72 |} /* Uni|t number|
|00002100| 20 6c 6f 6f 70 20 2a 2f | 0d 09 09 72 65 74 75 72 | loop */|...retur|
|00002110| 6e 20 28 73 74 61 74 75 | 73 29 3b 0d 7d 0d 0d 76 |n (statu|s);.}..v|
|00002120| 6f 69 64 0d 44 6f 44 65 | 76 69 63 65 54 65 73 74 |oid.DoDe|viceTest|
|00002130| 28 76 6f 69 64 29 0d 7b | 0d 09 09 4f 53 45 72 72 |(void).{|...OSErr|
|00002140| 09 09 09 09 73 74 61 74 | 75 73 3b 0d 09 09 75 6e |....stat|us;...un|
|00002150| 73 69 67 6e 65 64 20 6c | 6f 6e 67 09 09 73 74 61 |signed l|ong..sta|
|00002160| 72 74 42 6c 6f 63 6b 3b | 0d 09 09 75 6e 73 69 67 |rtBlock;|...unsig|
|00002170| 6e 65 64 20 6c 6f 6e 67 | 09 09 6e 42 6c 6f 63 6b |ned long|..nBlock|
|00002180| 73 3b 0d 0d 09 09 53 68 | 6f 77 44 65 63 69 6d 61 |s;....Sh|owDecima|
|00002190| 6c 28 67 44 72 69 76 65 | 72 52 65 66 4e 75 6d 2c |l(gDrive|rRefNum,|
|000021a0| 20 22 5c 70 44 6f 20 42 | 75 73 20 52 65 73 65 74 | "\pDo B|us Reset|
|000021b0| 22 29 3b 0d 09 09 73 74 | 61 74 75 73 20 3d 20 44 |");...st|atus = D|
|000021c0| 6f 42 75 73 52 65 73 65 | 74 28 29 3b 0d 09 09 69 |oBusRese|t();...i|
|000021d0| 66 20 28 73 74 61 74 75 | 73 20 21 3d 20 6e 6f 45 |f (statu|s != noE|
|000021e0| 72 72 29 0d 09 09 09 53 | 68 6f 77 53 74 61 74 75 |rr)....S|howStatu|
|000021f0| 73 53 74 72 69 6e 67 28 | 73 74 61 74 75 73 2c 20 |sString(|status, |
|00002200| 22 5c 70 44 6f 20 42 75 | 73 20 52 65 73 65 74 20 |"\pDo Bu|s Reset |
|00002210| 66 61 69 6c 65 64 22 29 | 3b 0d 09 09 65 6c 73 65 |failed")|;...else|
|00002220| 20 7b 0d 09 09 09 66 6f | 72 20 28 67 54 72 69 61 | {....fo|r (gTria|
|00002230| 6c 73 20 3d 20 30 3b 0d | 09 09 09 09 09 09 67 51 |ls = 0;.|......gQ|
|00002240| 75 69 74 4e 6f 77 20 3d | 3d 20 46 41 4c 53 45 0d |uitNow =|= FALSE.|
|00002250| 09 09 09 09 09 09 26 26 | 20 28 6b 53 43 53 49 54 |......&&| (kSCSIT|
|00002260| 72 69 61 6c 73 20 3d 3d | 20 30 20 7c 7c 20 67 54 |rials ==| 0 || gT|
|00002270| 72 69 61 6c 73 20 3c 20 | 6b 53 43 53 49 54 72 69 |rials < |kSCSITri|
|00002280| 61 6c 73 29 3b 0d 09 09 | 09 09 09 09 67 54 72 69 |als);...|....gTri|
|00002290| 61 6c 73 2b 2b 29 20 7b | 0d 09 09 09 09 53 68 6f |als++) {|.....Sho|
|000022a0| 77 44 65 63 69 6d 61 6c | 28 67 54 72 69 61 6c 73 |wDecimal|(gTrials|
|000022b0| 2c 20 22 5c 70 54 72 69 | 61 6c 22 29 3b 0d 09 09 |, "\pTri|al");...|
|000022c0| 09 09 66 6f 72 20 28 67 | 53 43 53 49 54 61 72 67 |..for (g|SCSITarg|
|000022d0| 65 74 49 44 20 3d 20 6b | 46 69 72 73 74 53 43 53 |etID = k|FirstSCS|
|000022e0| 49 54 61 72 67 65 74 49 | 44 3b 0d 09 09 09 09 09 |ITargetI|D;......|
|000022f0| 09 09 67 51 75 69 74 4e | 6f 77 20 3d 3d 20 46 41 |..gQuitN|ow == FA|
|00002300| 4c 53 45 20 26 26 20 67 | 53 43 53 49 54 61 72 67 |LSE && g|SCSITarg|
|00002310| 65 74 49 44 20 3c 3d 20 | 6b 4d 61 78 53 43 53 49 |etID <= |kMaxSCSI|
|00002320| 54 61 72 67 65 74 49 44 | 3b 0d 09 09 09 09 09 09 |TargetID|;.......|
|00002330| 09 67 53 43 53 49 54 61 | 72 67 65 74 49 44 2b 2b |.gSCSITa|rgetID++|
|00002340| 29 20 7b 0d 09 09 09 09 | 09 44 6f 45 76 65 6e 74 |) {.....|.DoEvent|
|00002350| 4c 6f 6f 70 28 29 3b 0d | 09 09 09 09 09 69 66 20 |Loop();.|.....if |
|00002360| 28 67 51 75 69 74 4e 6f | 77 20 3d 3d 20 46 41 4c |(gQuitNo|w == FAL|
|00002370| 53 45 29 20 7b 0d 09 09 | 09 09 09 09 53 68 6f 77 |SE) {...|....Show|
|00002380| 44 65 63 69 6d 61 6c 28 | 67 53 43 53 49 54 61 72 |Decimal(|gSCSITar|
|00002390| 67 65 74 49 44 2c 20 22 | 5c 70 54 61 72 67 65 74 |getID, "|\pTarget|
|000023a0| 22 29 3b 0d 09 09 09 09 | 09 09 73 74 61 74 75 73 |");.....|..status|
|000023b0| 20 3d 20 44 6f 54 65 73 | 74 55 6e 69 74 52 65 61 | = DoTes|tUnitRea|
|000023c0| 64 79 28 29 3b 0d 09 09 | 09 09 09 09 44 6f 45 76 |dy();...|....DoEv|
|000023d0| 65 6e 74 4c 6f 6f 70 28 | 29 3b 0d 09 09 09 09 09 |entLoop(|);......|
|000023e0| 09 69 66 20 28 73 74 61 | 74 75 73 20 3d 3d 20 6e |.if (sta|tus == n|
|000023f0| 6f 45 72 72 29 0d 09 09 | 09 09 09 09 09 73 74 61 |oErr)...|.....sta|
|00002400| 74 75 73 20 3d 20 44 6f | 44 65 76 69 63 65 49 6e |tus = Do|DeviceIn|
|00002410| 71 75 69 72 79 28 29 3b | 0d 09 09 09 09 09 09 44 |quiry();|.......D|
|00002420| 6f 45 76 65 6e 74 4c 6f | 6f 70 28 29 3b 0d 09 09 |oEventLo|op();...|
|00002430| 09 09 09 09 69 66 20 28 | 73 74 61 74 75 73 20 3d |....if (|status =|
|00002440| 3d 20 6e 6f 45 72 72 29 | 0d 09 09 09 09 09 09 09 |= noErr)|........|
|00002450| 73 74 61 74 75 73 20 3d | 20 44 6f 52 65 61 64 43 |status =| DoReadC|
|00002460| 61 70 61 63 69 74 79 28 | 29 3b 0d 09 09 09 09 09 |apacity(|);......|
|00002470| 09 44 6f 45 76 65 6e 74 | 4c 6f 6f 70 28 29 3b 0d |.DoEvent|Loop();.|
|00002480| 09 09 09 09 09 09 53 68 | 6f 77 53 74 61 74 75 73 |......Sh|owStatus|
|00002490| 53 74 72 69 6e 67 28 73 | 74 61 74 75 73 2c 20 22 |String(s|tatus, "|
|000024a0| 5c 70 44 6f 44 65 76 69 | 63 65 54 65 73 74 20 61 |\pDoDevi|ceTest a|
|000024b0| 66 74 65 72 20 69 6e 69 | 74 22 29 3b 0d 09 09 09 |fter ini|t");....|
|000024c0| 09 09 09 69 66 20 28 31 | 20 26 26 20 73 74 61 74 |...if (1| && stat|
|000024d0| 75 73 20 3d 3d 20 6e 6f | 45 72 72 29 20 7b 09 09 |us == no|Err) {..|
|000024e0| 2f 2a 20 54 75 72 6e 20 | 6f 6e 20 66 6f 72 20 64 |/* Turn |on for d|
|000024f0| 65 76 69 63 65 20 65 78 | 65 72 63 69 73 65 09 2a |evice ex|ercise.*|
|00002500| 2f 0d 09 09 09 09 09 09 | 09 6e 42 6c 6f 63 6b 73 |/.......|.nBlocks|
|00002510| 20 3d 20 6b 4d 69 6e 42 | 6c 6f 63 6b 73 3b 0d 09 | = kMinB|locks;..|
|00002520| 09 09 09 09 09 09 66 6f | 72 20 28 73 74 61 72 74 |......fo|r (start|
|00002530| 42 6c 6f 63 6b 20 3d 20 | 30 3b 0d 09 09 09 09 09 |Block = |0;......|
|00002540| 09 09 09 09 73 74 61 72 | 74 42 6c 6f 63 6b 20 3c |....star|tBlock <|
|00002550| 20 28 67 44 65 76 69 63 | 65 53 69 7a 65 20 2d 20 | (gDevic|eSize - |
|00002560| 6b 4d 61 78 42 6c 6f 63 | 6b 73 29 3b 0d 09 09 09 |kMaxBloc|ks);....|
|00002570| 09 09 09 09 09 09 73 74 | 61 72 74 42 6c 6f 63 6b |......st|artBlock|
|00002580| 2b 2b 29 20 7b 0d 09 09 | 09 09 09 09 09 09 69 66 |++) {...|......if|
|00002590| 20 28 6e 42 6c 6f 63 6b | 73 20 3e 20 6b 4d 61 78 | (nBlock|s > kMax|
|000025a0| 42 6c 6f 63 6b 73 29 0d | 09 09 09 09 09 09 09 09 |Blocks).|........|
|000025b0| 09 6e 42 6c 6f 63 6b 73 | 20 3d 20 6b 4d 69 6e 42 |.nBlocks| = kMinB|
|000025c0| 6c 6f 63 6b 73 3b 0d 09 | 09 09 09 09 09 09 09 44 |locks;..|.......D|
|000025d0| 6f 45 76 65 6e 74 4c 6f | 6f 70 28 29 3b 0d 09 09 |oEventLo|op();...|
|000025e0| 09 09 09 09 09 09 69 66 | 20 28 44 6f 52 65 61 64 |......if| (DoRead|
|000025f0| 42 6c 6f 63 6b 28 73 74 | 61 72 74 42 6c 6f 63 6b |Block(st|artBlock|
|00002600| 2c 20 6e 42 6c 6f 63 6b | 73 2c 20 46 41 4c 53 45 |, nBlock|s, FALSE|
|00002610| 29 20 21 3d 20 6e 6f 45 | 72 72 29 0d 09 09 09 09 |) != noE|rr).....|
|00002620| 09 09 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 09 09 |.....bre|ak;.....|
|00002630| 09 09 09 09 2b 2b 6e 42 | 6c 6f 63 6b 73 3b 0d 09 |....++nB|locks;..|
|00002640| 09 09 09 09 09 09 09 69 | 66 20 28 67 51 75 69 74 |.......i|f (gQuit|
|00002650| 4e 6f 77 29 20 7b 0d 09 | 09 09 09 09 09 09 09 09 |Now) {..|........|
|00002660| 53 68 6f 77 53 74 72 69 | 6e 67 28 22 5c 70 51 75 |ShowStri|ng("\pQu|
|00002670| 69 74 20 72 65 71 75 65 | 73 74 65 64 22 29 3b 0d |it reque|sted");.|
|00002680| 09 09 09 09 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |........|.break;.|
|00002690| 09 09 09 09 09 09 09 09 | 7d 0d 09 09 09 09 09 09 |........|}.......|
|000026a0| 09 7d 0d 09 09 09 09 09 | 09 7d 0d 09 09 09 09 09 |.}......|.}......|
|000026b0| 7d 0d 09 09 09 09 7d 0d | 09 09 09 7d 0d 09 09 7d |}.....}.|...}...}|
|000026c0| 0d 09 09 53 68 6f 77 53 | 74 61 74 75 73 53 74 72 |...ShowS|tatusStr|
|000026d0| 69 6e 67 28 73 74 61 74 | 75 73 2c 20 22 5c 70 44 |ing(stat|us, "\pD|
|000026e0| 6f 44 65 76 69 63 65 54 | 65 73 74 20 65 78 69 74 |oDeviceT|est exit|
|000026f0| 73 22 29 3b 0d 7d 0d 0d | 76 6f 69 64 0d 44 6f 49 |s");.}..|void.DoI|
|00002700| 53 52 54 65 73 74 28 76 | 6f 69 64 29 0d 7b 0d 09 |SRTest(v|oid).{..|
|00002710| 09 4f 53 45 72 72 09 09 | 09 09 09 09 73 74 61 74 |.OSErr..|....stat|
|00002720| 75 73 3b 0d 09 09 0d 09 | 09 66 6f 72 20 28 73 74 |us;.....|.for (st|
|00002730| 61 74 75 73 20 3d 20 6e | 6f 45 72 72 2c 20 67 54 |atus = n|oErr, gT|
|00002740| 72 69 61 6c 73 20 3d 20 | 30 3b 0d 09 09 09 09 09 |rials = |0;......|
|00002750| 67 51 75 69 74 4e 6f 77 | 20 3d 3d 20 46 41 4c 53 |gQuitNow| == FALS|
|00002760| 45 0d 09 09 09 09 09 26 | 26 20 28 6b 49 53 52 54 |E......&|& (kISRT|
|00002770| 72 69 61 6c 73 20 3d 3d | 20 30 20 7c 7c 20 67 54 |rials ==| 0 || gT|
|00002780| 72 69 61 6c 73 20 3c 20 | 6b 49 53 52 54 72 69 61 |rials < |kISRTria|
|00002790| 6c 73 29 3b 0d 09 09 09 | 09 09 67 54 72 69 61 6c |ls);....|..gTrial|
|000027a0| 73 2b 2b 29 20 7b 0d 09 | 09 09 44 6f 45 76 65 6e |s++) {..|..DoEven|
|000027b0| 74 4c 6f 6f 70 28 29 3b | 0d 09 09 09 53 68 6f 77 |tLoop();|....Show|
|000027c0| 44 65 63 69 6d 61 6c 28 | 67 54 72 69 61 6c 73 2c |Decimal(|gTrials,|
|000027d0| 20 22 5c 70 49 53 52 20 | 54 72 69 61 6c 22 29 3b | "\pISR |Trial");|
|000027e0| 0d 09 09 09 73 74 61 74 | 75 73 20 3d 20 44 6f 4f |....stat|us = DoO|
|000027f0| 6e 65 49 53 52 54 65 73 | 74 28 29 3b 0d 09 09 09 |neISRTes|t();....|
|00002800| 69 66 20 28 73 74 61 74 | 75 73 20 21 3d 20 6e 6f |if (stat|us != no|
|00002810| 45 72 72 29 20 7b 0d 09 | 09 09 09 53 68 6f 77 53 |Err) {..|...ShowS|
|00002820| 74 61 74 75 73 53 74 72 | 69 6e 67 28 73 74 61 74 |tatusStr|ing(stat|
|00002830| 75 73 2c 20 22 5c 70 49 | 53 52 20 54 65 73 74 20 |us, "\pI|SR Test |
|00002840| 66 61 69 6c 65 64 22 29 | 3b 0d 09 09 09 09 67 51 |failed")|;.....gQ|
|00002850| 75 69 74 4e 6f 77 20 3d | 20 54 52 55 45 3b 0d 09 |uitNow =| TRUE;..|
|00002860| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 7d 0d 09 |...break|;....}..|
|00002870| 09 7d 0d 7d 0d 0d 4f 53 | 45 72 72 0d 44 6f 4f 6e |.}.}..OS|Err.DoOn|
|00002880| 65 49 53 52 54 65 73 74 | 28 76 6f 69 64 29 0d 7b |eISRTest|(void).{|
|00002890| 0d 09 09 4f 53 45 72 72 | 09 09 09 09 09 73 74 61 |...OSErr|.....sta|
|000028a0| 74 75 73 3b 0d 09 09 75 | 6e 73 69 67 6e 65 64 20 |tus;...u|nsigned |
|000028b0| 63 68 61 72 09 09 09 64 | 75 6d 6d 79 42 75 66 66 |char...d|ummyBuff|
|000028c0| 65 72 3b 0d 23 64 65 66 | 69 6e 65 20 4e 43 52 09 |er;.#def|ine NCR.|
|000028d0| 28 67 4e 43 52 53 43 53 | 49 50 61 72 61 6d 29 0d |(gNCRSCS|IParam).|
|000028e0| 23 64 65 66 69 6e 65 20 | 50 42 09 28 67 49 4f 50 |#define |PB.(gIOP|
|000028f0| 61 72 61 6d 29 0d 0d 09 | 09 73 74 61 74 75 73 20 |aram)...|.status |
|00002900| 3d 20 6e 6f 45 72 72 3b | 0d 09 09 2f 2a 0d 09 09 |= noErr;|.../*...|
|00002910| 20 2a 20 53 65 74 75 70 | 20 74 68 65 20 70 61 72 | * Setup| the par|
|00002920| 61 6d 65 74 65 72 20 62 | 6c 6f 63 6b 0d 09 09 20 |ameter b|lock... |
|00002930| 2a 2f 0d 09 09 43 4c 45 | 41 52 28 50 42 29 3b 0d |*/...CLE|AR(PB);.|
|00002940| 09 09 43 4c 45 41 52 28 | 4e 43 52 29 3b 0d 09 09 |..CLEAR(|NCR);...|
|00002950| 50 42 2e 69 6f 52 65 66 | 4e 75 6d 20 3d 20 67 44 |PB.ioRef|Num = gD|
|00002960| 72 69 76 65 72 52 65 66 | 4e 75 6d 3b 0d 09 09 4e |riverRef|Num;...N|
|00002970| 43 52 2e 64 72 69 76 65 | 72 41 63 74 69 6f 6e 20 |CR.drive|rAction |
|00002980| 3d 20 6b 4e 43 52 44 72 | 69 76 65 72 4e 6f 44 61 |= kNCRDr|iverNoDa|
|00002990| 74 61 50 68 61 73 65 3b | 0d 09 09 4e 43 52 2e 74 |taPhase;|...NCR.t|
|000029a0| 61 72 67 65 74 49 44 20 | 3d 20 6b 4e 43 52 4d 65 |argetID |= kNCRMe|
|000029b0| 6d 6f 72 79 54 65 73 74 | 42 75 73 49 44 3b 0d 09 |moryTest|BusID;..|
|000029c0| 09 4e 43 52 2e 77 61 74 | 63 68 64 6f 67 54 69 6d |.NCR.wat|chdogTim|
|000029d0| 65 6f 75 74 20 3d 20 6b | 54 69 6d 65 6f 75 74 3b |eout = k|Timeout;|
|000029e0| 09 09 2f 2a 20 50 72 65 | 73 75 6d 61 62 6c 79 20 |../* Pre|sumably |
|000029f0| 61 20 74 77 6f 20 73 65 | 63 6f 6e 64 20 74 69 6d |a two se|cond tim|
|00002a00| 65 6f 75 74 09 2a 2f 0d | 09 09 50 42 2e 69 6f 42 |eout.*/.|..PB.ioB|
|00002a10| 75 66 66 65 72 20 3d 20 | 28 50 74 72 29 20 26 64 |uffer = |(Ptr) &d|
|00002a20| 75 6d 6d 79 42 75 66 66 | 65 72 3b 0d 09 09 50 42 |ummyBuff|er;...PB|
|00002a30| 2e 69 6f 52 65 71 43 6f | 75 6e 74 20 3d 20 31 3b |.ioReqCo|unt = 1;|
|00002a40| 0d 09 09 50 42 2e 69 6f | 4d 69 73 63 20 3d 20 28 |...PB.io|Misc = (|
|00002a50| 50 74 72 29 20 26 67 4e | 43 52 53 43 53 49 50 61 |Ptr) &gN|CRSCSIPa|
|00002a60| 72 61 6d 3b 0d 09 09 73 | 74 61 74 75 73 20 3d 20 |ram;...s|tatus = |
|00002a70| 50 42 52 65 61 64 53 79 | 6e 63 28 28 50 61 72 6d |PBReadSy|nc((Parm|
|00002a80| 42 6c 6b 50 74 72 29 20 | 26 50 42 29 3b 0d 09 09 |BlkPtr) |&PB);...|
|00002a90| 72 65 74 75 72 6e 20 28 | 28 73 74 61 74 75 73 20 |return (|(status |
|00002aa0| 21 3d 20 6e 6f 45 72 72 | 29 20 3f 20 73 74 61 74 |!= noErr|) ? stat|
|00002ab0| 75 73 20 3a 20 50 42 2e | 69 6f 52 65 73 75 6c 74 |us : PB.|ioResult|
|00002ac0| 29 3b 0d 23 75 6e 64 65 | 66 20 50 42 0d 23 75 6e |);.#unde|f PB.#un|
|00002ad0| 64 65 66 20 4e 43 52 0d | 7d 0d 0d 76 6f 69 64 0d |def NCR.|}..void.|
|00002ae0| 44 6f 45 76 65 6e 74 4c | 6f 6f 70 28 76 6f 69 64 |DoEventL|oop(void|
|00002af0| 29 0d 7b 0d 09 09 6c 6f | 6e 67 09 09 09 09 09 09 |).{...lo|ng......|
|00002b00| 09 6d 65 6e 75 43 68 6f | 69 63 65 3b 0d 09 09 72 |.menuCho|ice;...r|
|00002b10| 65 67 69 73 74 65 72 20 | 57 69 6e 64 6f 77 50 74 |egister |WindowPt|
|00002b20| 72 09 09 09 09 74 68 65 | 57 69 6e 64 6f 77 3b 0d |r....the|Window;.|
|00002b30| 09 09 47 72 61 66 50 74 | 72 09 09 09 09 09 09 09 |..GrafPt|r.......|
|00002b40| 73 61 76 65 50 6f 72 74 | 3b 0d 09 09 42 6f 6f 6c |savePort|;...Bool|
|00002b50| 65 61 6e 09 09 09 09 09 | 09 09 69 73 41 63 74 69 |ean.....|..isActi|
|00002b60| 76 61 74 69 6e 67 3b 0d | 09 09 0d 09 09 57 61 69 |vating;.|.....Wai|
|00002b70| 74 4e 65 78 74 45 76 65 | 6e 74 28 0d 09 09 09 65 |tNextEve|nt(....e|
|00002b80| 76 65 72 79 45 76 65 6e | 74 2c 0d 09 09 09 26 67 |veryEven|t,....&g|
|00002b90| 45 76 65 6e 74 52 65 63 | 6f 72 64 2c 0d 09 09 09 |EventRec|ord,....|
|00002ba0| 31 30 4c 2c 0d 09 09 09 | 4e 55 4c 4c 0d 09 09 29 |10L,....|NULL...)|
|00002bb0| 3b 0d 09 09 74 68 65 57 | 69 6e 64 6f 77 20 3d 20 |;...theW|indow = |
|00002bc0| 46 72 6f 6e 74 57 69 6e | 64 6f 77 28 29 3b 0d 09 |FrontWin|dow();..|
|00002bd0| 09 73 77 69 74 63 68 20 | 28 67 45 76 65 6e 74 52 |.switch |(gEventR|
|00002be0| 65 63 6f 72 64 2e 77 68 | 61 74 29 20 7b 0d 09 09 |ecord.wh|at) {...|
|00002bf0| 63 61 73 65 20 6e 75 6c | 6c 45 76 65 6e 74 3a 0d |case nul|lEvent:.|
|00002c00| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 63 61 73 65 |...break|;...case|
|00002c10| 20 6b 65 79 44 6f 77 6e | 3a 0d 09 09 63 61 73 65 | keyDown|:...case|
|00002c20| 20 61 75 74 6f 4b 65 79 | 3a 0d 09 09 09 69 66 20 | autoKey|:....if |
|00002c30| 28 28 67 45 76 65 6e 74 | 52 65 63 6f 72 64 2e 6d |((gEvent|Record.m|
|00002c40| 65 73 73 61 67 65 20 26 | 20 63 68 61 72 43 6f 64 |essage &| charCod|
|00002c50| 65 4d 61 73 6b 29 20 3d | 3d 20 27 2e 27 0d 09 09 |eMask) =|= '.'...|
|00002c60| 09 20 26 26 20 28 67 45 | 76 65 6e 74 52 65 63 6f |. && (gE|ventReco|
|00002c70| 72 64 2e 6d 6f 64 69 66 | 69 65 72 73 20 26 20 63 |rd.modif|iers & c|
|00002c80| 6d 64 4b 65 79 29 20 21 | 3d 20 30 29 20 7b 0d 09 |mdKey) !|= 0) {..|
|00002c90| 09 09 09 46 6c 75 73 68 | 45 76 65 6e 74 73 28 6b |...Flush|Events(k|
|00002ca0| 65 79 44 6f 77 6e 20 7c | 20 61 75 74 6f 4b 65 79 |eyDown || autoKey|
|00002cb0| 2c 20 30 29 3b 0d 09 09 | 09 09 67 51 75 69 74 4e |, 0);...|..gQuitN|
|00002cc0| 6f 77 20 3d 20 54 52 55 | 45 3b 0d 09 09 09 7d 0d |ow = TRU|E;....}.|
|00002cd0| 09 09 09 65 6c 73 65 20 | 69 66 20 28 28 67 45 76 |...else |if ((gEv|
|00002ce0| 65 6e 74 52 65 63 6f 72 | 64 2e 6d 6f 64 69 66 69 |entRecor|d.modifi|
|00002cf0| 65 72 73 20 26 20 63 6d | 64 4b 65 79 29 20 21 3d |ers & cm|dKey) !=|
|00002d00| 20 30 29 20 7b 0d 09 09 | 09 09 69 66 20 28 67 45 | 0) {...|..if (gE|
|00002d10| 76 65 6e 74 52 65 63 6f | 72 64 2e 77 68 61 74 20 |ventReco|rd.what |
|00002d20| 3d 3d 20 6b 65 79 44 6f | 77 6e 29 20 7b 0d 09 09 |== keyDo|wn) {...|
|00002d30| 09 09 09 6d 65 6e 75 43 | 68 6f 69 63 65 20 3d 20 |...menuC|hoice = |
|00002d40| 4d 65 6e 75 4b 65 79 28 | 67 45 76 65 6e 74 52 65 |MenuKey(|gEventRe|
|00002d50| 63 6f 72 64 2e 6d 65 73 | 73 61 67 65 20 26 20 63 |cord.mes|sage & c|
|00002d60| 68 61 72 43 6f 64 65 4d | 61 73 6b 29 3b 0d 09 09 |harCodeM|ask);...|
|00002d70| 09 09 09 69 66 20 28 48 | 69 57 6f 72 64 28 6d 65 |...if (H|iWord(me|
|00002d80| 6e 75 43 68 6f 69 63 65 | 29 20 21 3d 20 30 29 0d |nuChoice|) != 0).|
|00002d90| 09 09 09 09 09 09 44 6f | 43 6f 6d 6d 61 6e 64 28 |......Do|Command(|
|00002da0| 6d 65 6e 75 43 68 6f 69 | 63 65 29 3b 0d 09 09 09 |menuChoi|ce);....|
|00002db0| 09 7d 0d 09 09 09 7d 0d | 09 09 09 62 72 65 61 6b |.}....}.|...break|
|00002dc0| 3b 0d 09 09 63 61 73 65 | 20 6d 6f 75 73 65 44 6f |;...case| mouseDo|
|00002dd0| 77 6e 3a 0d 09 09 09 44 | 6f 4d 6f 75 73 65 45 76 |wn:....D|oMouseEv|
|00002de0| 65 6e 74 28 29 3b 0d 09 | 09 09 62 72 65 61 6b 3b |ent();..|..break;|
|00002df0| 0d 09 09 63 61 73 65 20 | 75 70 64 61 74 65 45 76 |...case |updateEv|
|00002e00| 74 3a 0d 09 09 09 74 68 | 65 57 69 6e 64 6f 77 20 |t:....th|eWindow |
|00002e10| 3d 20 28 57 69 6e 64 6f | 77 50 74 72 29 20 67 45 |= (Windo|wPtr) gE|
|00002e20| 76 65 6e 74 52 65 63 6f | 72 64 2e 6d 65 73 73 61 |ventReco|rd.messa|
|00002e30| 67 65 3b 0d 09 09 09 47 | 65 74 50 6f 72 74 28 26 |ge;....G|etPort(&|
|00002e40| 73 61 76 65 50 6f 72 74 | 29 3b 0d 09 09 09 53 65 |savePort|);....Se|
|00002e50| 74 50 6f 72 74 28 74 68 | 65 57 69 6e 64 6f 77 29 |tPort(th|eWindow)|
|00002e60| 3b 0d 09 09 09 42 65 67 | 69 6e 55 70 64 61 74 65 |;....Beg|inUpdate|
|00002e70| 28 74 68 65 57 69 6e 64 | 6f 77 29 3b 0d 09 09 09 |(theWind|ow);....|
|00002e80| 45 72 61 73 65 52 65 63 | 74 28 26 74 68 65 57 69 |EraseRec|t(&theWi|
|00002e90| 6e 64 6f 77 2d 3e 70 6f | 72 74 52 65 63 74 29 3b |ndow->po|rtRect);|
|00002ea0| 0d 09 09 09 44 72 61 77 | 43 6f 6e 74 72 6f 6c 73 |....Draw|Controls|
|00002eb0| 28 74 68 65 57 69 6e 64 | 6f 77 29 3b 0d 09 09 09 |(theWind|ow);....|
|00002ec0| 44 72 61 77 47 72 6f 77 | 49 63 6f 6e 28 74 68 65 |DrawGrow|Icon(the|
|00002ed0| 57 69 6e 64 6f 77 29 3b | 0d 09 09 09 45 6e 64 55 |Window);|....EndU|
|00002ee0| 70 64 61 74 65 28 74 68 | 65 57 69 6e 64 6f 77 29 |pdate(th|eWindow)|
|00002ef0| 3b 0d 09 09 09 53 65 74 | 50 6f 72 74 28 73 61 76 |;....Set|Port(sav|
|00002f00| 65 50 6f 72 74 29 3b 0d | 09 09 09 62 72 65 61 6b |ePort);.|...break|
|00002f10| 3b 0d 09 09 63 61 73 65 | 20 61 63 74 69 76 61 74 |;...case| activat|
|00002f20| 65 45 76 74 3a 0d 09 09 | 09 74 68 65 57 69 6e 64 |eEvt:...|.theWind|
|00002f30| 6f 77 20 3d 20 28 57 69 | 6e 64 6f 77 50 74 72 29 |ow = (Wi|ndowPtr)|
|00002f40| 20 67 45 76 65 6e 74 52 | 65 63 6f 72 64 2e 6d 65 | gEventR|ecord.me|
|00002f50| 73 73 61 67 65 3b 0d 09 | 09 09 69 73 41 63 74 69 |ssage;..|..isActi|
|00002f60| 76 61 74 69 6e 67 20 3d | 20 28 28 67 45 76 65 6e |vating =| ((gEven|
|00002f70| 74 52 65 63 6f 72 64 2e | 6d 6f 64 69 66 69 65 72 |tRecord.|modifier|
|00002f80| 73 20 26 20 61 63 74 69 | 76 65 46 6c 61 67 29 20 |s & acti|veFlag) |
|00002f90| 21 3d 20 30 29 3b 0d 09 | 09 09 67 6f 74 6f 20 61 |!= 0);..|..goto a|
|00002fa0| 63 74 69 76 61 74 65 45 | 76 65 6e 74 3b 0d 09 09 |ctivateE|vent;...|
|00002fb0| 09 62 72 65 61 6b 3b 0d | 09 09 63 61 73 65 20 6f |.break;.|..case o|
|00002fc0| 73 45 76 74 3a 0d 09 09 | 09 73 77 69 74 63 68 20 |sEvt:...|.switch |
|00002fd0| 28 28 28 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |(((unsig|ned long|
|00002fe0| 29 20 67 45 76 65 6e 74 | 52 65 63 6f 72 64 2e 6d |) gEvent|Record.m|
|00002ff0| 65 73 73 61 67 65 29 20 | 3e 3e 20 32 34 29 20 7b |essage) |>> 24) {|
|00003000| 0d 09 09 09 63 61 73 65 | 20 6d 6f 75 73 65 4d 6f |....case| mouseMo|
|00003010| 76 65 64 4d 65 73 73 61 | 67 65 3a 0d 09 09 09 09 |vedMessa|ge:.....|
|00003020| 62 72 65 61 6b 3b 0d 09 | 09 09 63 61 73 65 20 73 |break;..|..case s|
|00003030| 75 73 70 65 6e 64 52 65 | 73 75 6d 65 4d 65 73 73 |uspendRe|sumeMess|
|00003040| 61 67 65 3a 0d 09 09 09 | 09 69 73 41 63 74 69 76 |age:....|.isActiv|
|00003050| 61 74 69 6e 67 20 3d 20 | 28 28 67 45 76 65 6e 74 |ating = |((gEvent|
|00003060| 52 65 63 6f 72 64 2e 6d | 65 73 73 61 67 65 20 26 |Record.m|essage &|
|00003070| 20 30 78 30 31 29 20 21 | 3d 20 30 29 3b 0d 61 63 | 0x01) !|= 0);.ac|
|00003080| 74 69 76 61 74 65 45 76 | 65 6e 74 3a 09 09 69 66 |tivateEv|ent:..if|
|00003090| 20 28 69 73 41 63 74 69 | 76 61 74 69 6e 67 29 20 | (isActi|vating) |
|000030a0| 7b 0d 09 09 09 09 09 2f | 2a 0d 09 09 09 09 09 20 |{....../|*...... |
|000030b0| 2a 20 41 63 74 69 76 61 | 74 65 20 74 68 69 73 20 |* Activa|te this |
|000030c0| 77 69 6e 64 6f 77 2e 20 | 41 63 74 69 76 61 74 65 |window. |Activate|
|000030d0| 20 65 76 65 6e 74 73 20 | 64 65 66 69 6e 65 20 74 | events |define t|
|000030e0| 68 65 57 69 6e 64 6f 77 | 0d 09 09 09 09 09 20 2a |heWindow|...... *|
|000030f0| 20 66 72 6f 6d 20 74 68 | 65 20 65 76 65 6e 74 20 | from th|e event |
|00003100| 72 65 63 6f 72 64 2c 20 | 77 68 69 6c 65 20 73 75 |record, |while su|
|00003110| 73 70 65 6e 64 2f 72 65 | 73 75 6d 65 20 75 73 65 |spend/re|sume use|
|00003120| 73 20 74 68 65 0d 09 09 | 09 09 09 20 2a 20 70 72 |s the...|... * pr|
|00003130| 65 2d 73 65 74 20 46 72 | 6f 6e 74 57 69 6e 64 6f |e-set Fr|ontWindo|
|00003140| 77 20 76 61 6c 75 65 2e | 0d 09 09 09 09 09 20 2a |w value.|...... *|
|00003150| 2f 0d 09 09 09 09 09 53 | 65 6c 65 63 74 57 69 6e |/......S|electWin|
|00003160| 64 6f 77 28 74 68 65 57 | 69 6e 64 6f 77 29 3b 0d |dow(theW|indow);.|
|00003170| 09 09 09 09 09 28 76 6f | 69 64 29 20 54 45 46 72 |.....(vo|id) TEFr|
|00003180| 6f 6d 53 63 72 61 70 28 | 29 3b 0d 09 09 09 09 7d |omScrap(|);.....}|
|00003190| 0d 09 09 09 09 67 49 6e | 46 6f 72 65 67 72 6f 75 |.....gIn|Foregrou|
|000031a0| 6e 64 20 3d 20 69 73 41 | 63 74 69 76 61 74 69 6e |nd = isA|ctivatin|
|000031b0| 67 3b 0d 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |g;.....b|reak;...|
|000031c0| 09 7d 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 7d |.}....br|eak;...}|
|000031d0| 0d 7d 0d 0d 0d 2f 2a 0d | 20 2a 20 44 6f 4d 6f 75 |.}.../*.| * DoMou|
|000031e0| 73 65 45 76 65 6e 74 0d | 20 2a 20 54 68 65 20 75 |seEvent.| * The u|
|000031f0| 73 65 72 20 63 6c 69 63 | 6b 65 64 20 6f 6e 20 73 |ser clic|ked on s|
|00003200| 6f 6d 65 74 68 69 6e 67 | 2e 20 48 61 6e 64 6c 65 |omething|. Handle|
|00003210| 20 61 70 70 6c 69 63 61 | 74 69 6f 6e 2d 77 69 64 | applica|tion-wid|
|00003220| 65 20 70 72 6f 63 65 73 | 73 69 6e 67 20 68 65 72 |e proces|sing her|
|00003230| 65 2c 20 6f 72 20 63 61 | 6c 6c 0d 20 2a 20 61 20 |e, or ca|ll. * a |
|00003240| 43 61 74 61 6c 6f 67 20 | 42 72 6f 77 73 65 72 20 |Catalog |Browser |
|00003250| 66 75 6e 63 74 69 6f 6e | 20 66 6f 72 20 73 70 65 |function| for spe|
|00003260| 63 69 66 69 63 20 61 63 | 74 69 6f 6e 2e 0d 20 2a |cific ac|tion.. *|
|00003270| 2f 0d 76 6f 69 64 0d 44 | 6f 4d 6f 75 73 65 45 76 |/.void.D|oMouseEv|
|00003280| 65 6e 74 28 76 6f 69 64 | 29 0d 7b 0d 09 09 57 69 |ent(void|).{...Wi|
|00003290| 6e 64 6f 77 50 74 72 09 | 09 74 68 65 57 69 6e 64 |ndowPtr.|.theWind|
|000032a0| 6f 77 3b 0d 09 09 73 68 | 6f 72 74 09 09 09 77 68 |ow;...sh|ort...wh|
|000032b0| 69 63 68 50 61 72 74 3b | 0d 09 09 0d 09 09 77 68 |ichPart;|......wh|
|000032c0| 69 63 68 50 61 72 74 20 | 3d 20 46 69 6e 64 57 69 |ichPart |= FindWi|
|000032d0| 6e 64 6f 77 28 67 45 76 | 65 6e 74 52 65 63 6f 72 |ndow(gEv|entRecor|
|000032e0| 64 2e 77 68 65 72 65 2c | 20 26 74 68 65 57 69 6e |d.where,| &theWin|
|000032f0| 64 6f 77 29 3b 0d 09 09 | 73 77 69 74 63 68 20 28 |dow);...|switch (|
|00003300| 77 68 69 63 68 50 61 72 | 74 29 20 7b 0d 09 09 63 |whichPar|t) {...c|
|00003310| 61 73 65 20 69 6e 4d 65 | 6e 75 42 61 72 3a 0d 09 |ase inMe|nuBar:..|
|00003320| 09 09 49 6e 69 74 43 75 | 72 73 6f 72 28 29 3b 0d |..InitCu|rsor();.|
|00003330| 09 09 09 44 6f 43 6f 6d | 6d 61 6e 64 28 4d 65 6e |...DoCom|mand(Men|
|00003340| 75 53 65 6c 65 63 74 28 | 67 45 76 65 6e 74 52 65 |uSelect(|gEventRe|
|00003350| 63 6f 72 64 2e 77 68 65 | 72 65 29 29 3b 0d 09 09 |cord.whe|re));...|
|00003360| 09 62 72 65 61 6b 3b 0d | 09 09 7d 0d 7d 0d 0d 76 |.break;.|..}.}..v|
|00003370| 6f 69 64 0d 44 6f 43 6f | 6d 6d 61 6e 64 28 0d 09 |oid.DoCo|mmand(..|
|00003380| 09 6c 6f 6e 67 09 09 09 | 09 09 6d 65 6e 75 43 68 |.long...|..menuCh|
|00003390| 6f 69 63 65 0d 09 29 0d | 7b 0d 09 09 73 68 6f 72 |oice..).|{...shor|
|000033a0| 74 09 09 09 09 09 6d 65 | 6e 75 49 74 65 6d 3b 0d |t.....me|nuItem;.|
|000033b0| 09 09 53 74 72 32 35 35 | 09 09 09 09 09 6d 65 6e |..Str255|.....men|
|000033c0| 75 54 65 78 74 3b 0d 09 | 09 47 72 61 66 50 74 72 |uText;..|.GrafPtr|
|000033d0| 09 09 09 09 09 73 61 76 | 65 50 6f 72 74 3b 0d 0d |.....sav|ePort;..|
|000033e0| 09 09 6d 65 6e 75 49 74 | 65 6d 20 3d 20 4c 6f 57 |..menuIt|em = LoW|
|000033f0| 6f 72 64 28 6d 65 6e 75 | 43 68 6f 69 63 65 29 3b |ord(menu|Choice);|
|00003400| 0d 09 09 73 77 69 74 63 | 68 20 28 48 69 57 6f 72 |...switc|h (HiWor|
|00003410| 64 28 6d 65 6e 75 43 68 | 6f 69 63 65 29 29 20 7b |d(menuCh|oice)) {|
|00003420| 0d 09 09 63 61 73 65 20 | 4d 45 4e 55 5f 41 70 70 |...case |MENU_App|
|00003430| 6c 65 3a 0d 09 09 09 69 | 66 20 28 6d 65 6e 75 49 |le:....i|f (menuI|
|00003440| 74 65 6d 20 21 3d 20 6b | 41 70 70 6c 65 41 62 6f |tem != k|AppleAbo|
|00003450| 75 74 29 20 7b 0d 09 09 | 09 09 47 65 74 4d 65 6e |ut) {...|..GetMen|
|00003460| 75 49 74 65 6d 54 65 78 | 74 28 67 41 70 70 6c 65 |uItemTex|t(gApple|
|00003470| 4d 65 6e 75 2c 20 6d 65 | 6e 75 49 74 65 6d 2c 20 |Menu, me|nuItem, |
|00003480| 6d 65 6e 75 54 65 78 74 | 29 3b 0d 09 09 09 09 47 |menuText|);.....G|
|00003490| 65 74 50 6f 72 74 28 26 | 73 61 76 65 50 6f 72 74 |etPort(&|savePort|
|000034a0| 29 3b 0d 09 09 09 09 4f | 70 65 6e 44 65 73 6b 41 |);.....O|penDeskA|
|000034b0| 63 63 28 6d 65 6e 75 54 | 65 78 74 29 3b 0d 09 09 |cc(menuT|ext);...|
|000034c0| 09 09 53 65 74 50 6f 72 | 74 28 73 61 76 65 50 6f |..SetPor|t(savePo|
|000034d0| 72 74 29 3b 0d 09 09 09 | 7d 0d 09 09 09 62 72 65 |rt);....|}....bre|
|000034e0| 61 6b 3b 0d 09 09 63 61 | 73 65 20 4d 45 4e 55 5f |ak;...ca|se MENU_|
|000034f0| 46 69 6c 65 3a 0d 67 51 | 75 69 74 4e 6f 77 20 3d |File:.gQ|uitNow =|
|00003500| 20 54 52 55 45 3b 0d 09 | 09 09 73 77 69 74 63 68 | TRUE;..|..switch|
|00003510| 20 28 6d 65 6e 75 49 74 | 65 6d 29 20 7b 0d 09 09 | (menuIt|em) {...|
|00003520| 09 63 61 73 65 20 6b 46 | 69 6c 65 51 75 69 74 3a |.case kF|ileQuit:|
|00003530| 0d 09 09 09 09 67 51 75 | 69 74 4e 6f 77 20 3d 20 |.....gQu|itNow = |
|00003540| 54 52 55 45 3b 0d 09 09 | 09 09 62 72 65 61 6b 3b |TRUE;...|..break;|
|00003550| 0d 09 09 09 64 65 66 61 | 75 6c 74 3a 0d 09 09 09 |....defa|ult:....|
|00003560| 09 44 65 62 75 67 53 74 | 72 28 22 5c 70 53 74 72 |.DebugSt|r("\pStr|
|00003570| 61 6e 67 65 20 46 69 6c | 65 20 4d 65 6e 75 22 29 |ange Fil|e Menu")|
|00003580| 3b 0d 09 09 09 09 67 51 | 75 69 74 4e 6f 77 20 3d |;.....gQ|uitNow =|
|00003590| 20 54 52 55 45 3b 0d 09 | 09 09 09 62 72 65 61 6b | TRUE;..|...break|
|000035a0| 3b 0d 09 09 09 7d 0d 09 | 09 09 62 72 65 61 6b 3b |;....}..|..break;|
|000035b0| 0d 09 09 7d 0d 09 09 48 | 69 6c 69 74 65 4d 65 6e |...}...H|iliteMen|
|000035c0| 75 28 30 29 3b 0d 7d 0d | 0d 0d 4f 53 45 72 72 0d |u(0);.}.|..OSErr.|
|000035d0| 44 6f 42 75 73 52 65 73 | 65 74 28 76 6f 69 64 29 |DoBusRes|et(void)|
|000035e0| 0d 7b 0d 0d 09 09 4f 53 | 45 72 72 09 09 09 09 09 |.{....OS|Err.....|
|000035f0| 73 74 61 74 75 73 3b 0d | 09 09 43 6e 74 72 6c 50 |status;.|..CntrlP|
|00003600| 61 72 61 6d 09 09 09 09 | 70 62 3b 0d 09 09 0d 09 |aram....|pb;.....|
|00003610| 09 53 68 6f 77 53 74 72 | 69 6e 67 28 22 5c 70 49 |.ShowStr|ing("\pI|
|00003620| 6e 20 44 6f 42 75 73 52 | 65 73 65 74 22 29 3b 0d |n DoBusR|eset");.|
|00003630| 09 09 43 4c 45 41 52 28 | 70 62 29 3b 0d 09 09 70 |..CLEAR(|pb);...p|
|00003640| 62 2e 69 6f 43 52 65 66 | 4e 75 6d 20 3d 20 67 44 |b.ioCRef|Num = gD|
|00003650| 72 69 76 65 72 52 65 66 | 4e 75 6d 3b 0d 09 09 70 |riverRef|Num;...p|
|00003660| 62 2e 63 73 43 6f 64 65 | 20 3d 20 6b 43 6f 6e 74 |b.csCode| = kCont|
|00003670| 72 6f 6c 44 6f 53 43 53 | 49 42 75 73 52 65 73 65 |rolDoSCS|IBusRese|
|00003680| 74 3b 0d 09 09 73 74 61 | 74 75 73 20 3d 20 50 42 |t;...sta|tus = PB|
|00003690| 43 6f 6e 74 72 6f 6c 53 | 79 6e 63 28 28 50 61 72 |ControlS|ync((Par|
|000036a0| 6d 42 6c 6b 50 74 72 29 | 20 26 70 62 29 3b 0d 09 |mBlkPtr)| &pb);..|
|000036b0| 09 53 68 6f 77 53 74 61 | 74 75 73 53 74 72 69 6e |.ShowSta|tusStrin|
|000036c0| 67 28 73 74 61 74 75 73 | 2c 20 22 5c 70 44 6f 42 |g(status|, "\pDoB|
|000036d0| 75 73 52 65 73 65 74 20 | 50 42 43 6f 6e 74 72 6f |usReset |PBContro|
|000036e0| 6c 20 73 74 61 74 75 73 | 22 29 3b 0d 09 09 69 66 |l status|");...if|
|000036f0| 20 28 70 62 2e 69 6f 52 | 65 73 75 6c 74 20 21 3d | (pb.ioR|esult !=|
|00003700| 20 6e 6f 45 72 72 29 20 | 7b 0d 09 09 09 53 68 6f | noErr) |{....Sho|
|00003710| 77 44 65 63 69 6d 61 6c | 28 70 62 2e 69 6f 52 65 |wDecimal|(pb.ioRe|
|00003720| 73 75 6c 74 2c 20 22 5c | 70 42 75 73 20 72 65 73 |sult, "\|pBus res|
|00003730| 65 74 20 66 61 69 6c 65 | 64 22 29 3b 0d 09 09 09 |et faile|d");....|
|00003740| 67 51 75 69 74 4e 6f 77 | 20 3d 20 54 52 55 45 3b |gQuitNow| = TRUE;|
|00003750| 0d 09 09 7d 0d 09 09 72 | 65 74 75 72 6e 20 28 73 |...}...r|eturn (s|
|00003760| 74 61 74 75 73 29 3b 0d | 7d 0d 0d 4f 53 45 72 72 |tatus);.|}..OSErr|
|00003770| 0d 44 6f 54 65 73 74 55 | 6e 69 74 52 65 61 64 79 |.DoTestU|nitReady|
|00003780| 28 76 6f 69 64 29 0d 7b | 0d 09 09 4f 53 45 72 72 |(void).{|...OSErr|
|00003790| 09 09 09 09 09 73 74 61 | 74 75 73 3b 0d 09 09 53 |.....sta|tus;...S|
|000037a0| 43 53 49 5f 36 5f 42 79 | 74 65 5f 43 6f 6d 6d 61 |CSI_6_By|te_Comma|
|000037b0| 6e 64 09 09 74 65 73 74 | 55 6e 69 74 52 65 61 64 |nd..test|UnitRead|
|000037c0| 79 3b 0d 09 09 63 68 61 | 72 09 09 09 09 09 66 6f |y;...cha|r.....fo|
|000037d0| 6f 5b 36 34 5d 3b 0d 09 | 09 0d 09 09 43 4c 45 41 |o[64];..|....CLEA|
|000037e0| 52 28 74 65 73 74 55 6e | 69 74 52 65 61 64 79 29 |R(testUn|itReady)|
|000037f0| 3b 0d 09 09 74 65 73 74 | 55 6e 69 74 52 65 61 64 |;...test|UnitRead|
|00003800| 79 2e 6f 70 63 6f 64 65 | 20 3d 20 6b 53 63 73 69 |y.opcode| = kScsi|
|00003810| 43 6d 64 54 65 73 74 55 | 6e 69 74 52 65 61 64 79 |CmdTestU|nitReady|
|00003820| 3b 0d 09 09 53 68 6f 77 | 53 74 72 69 6e 67 28 22 |;...Show|String("|
|00003830| 5c 70 43 61 6c 6c 69 6e | 67 20 54 65 73 74 55 6e |\pCallin|g TestUn|
|00003840| 69 74 52 65 61 64 79 22 | 29 3b 0d 09 09 73 74 61 |itReady"|);...sta|
|00003850| 74 75 73 20 3d 20 44 6f | 4e 43 52 44 72 69 76 65 |tus = Do|NCRDrive|
|00003860| 72 49 4f 57 69 74 68 53 | 65 6e 73 65 28 0d 09 09 |rIOWithS|ense(...|
|00003870| 09 09 09 6b 4e 43 52 44 | 72 69 76 65 72 4e 6f 44 |...kNCRD|riverNoD|
|00003880| 61 74 61 50 68 61 73 65 | 2c 0d 09 09 09 09 09 67 |ataPhase|,......g|
|00003890| 53 43 53 49 54 61 72 67 | 65 74 49 44 2c 0d 09 09 |SCSITarg|etID,...|
|000038a0| 09 09 09 67 53 43 53 49 | 54 61 72 67 65 74 4c 55 |...gSCSI|TargetLU|
|000038b0| 4e 2c 0d 09 09 09 09 09 | 28 75 6e 73 69 67 6e 65 |N,......|(unsigne|
|000038c0| 64 20 63 68 61 72 20 2a | 29 20 26 74 65 73 74 55 |d char *|) &testU|
|000038d0| 6e 69 74 52 65 61 64 79 | 2c 0d 09 09 09 09 09 28 |nitReady|,......(|
|000038e0| 50 74 72 29 20 66 6f 6f | 2c 09 09 09 09 2f 2a 20 |Ptr) foo|,..../* |
|000038f0| 50 42 52 65 61 64 20 6d | 75 73 74 20 70 61 73 73 |PBRead m|ust pass|
|00003900| 20 61 20 72 65 61 6c 20 | 62 75 66 66 65 72 09 2a | a real |buffer.*|
|00003910| 2f 0d 09 09 09 09 09 36 | 34 2c 0d 09 09 09 09 09 |/......6|4,......|
|00003920| 4e 55 4c 4c 0d 09 09 09 | 09 29 3b 0d 09 09 72 65 |NULL....|.);...re|
|00003930| 74 75 72 6e 20 28 73 74 | 61 74 75 73 29 3b 0d 7d |turn (st|atus);.}|
|00003940| 0d 0d 4f 53 45 72 72 0d | 44 6f 44 65 76 69 63 65 |..OSErr.|DoDevice|
|00003950| 49 6e 71 75 69 72 79 28 | 76 6f 69 64 29 0d 7b 0d |Inquiry(|void).{.|
|00003960| 09 09 4f 53 45 72 72 09 | 09 09 09 09 09 73 74 61 |..OSErr.|.....sta|
|00003970| 74 75 73 3b 0d 09 09 53 | 43 53 49 5f 36 5f 42 79 |tus;...S|CSI_6_By|
|00003980| 74 65 5f 43 6f 6d 6d 61 | 6e 64 09 09 09 64 65 76 |te_Comma|nd...dev|
|00003990| 69 63 65 49 6e 71 75 69 | 72 79 3b 0d 09 09 53 43 |iceInqui|ry;...SC|
|000039a0| 53 49 5f 49 6e 71 75 69 | 72 79 5f 44 61 74 61 09 |SI_Inqui|ry_Data.|
|000039b0| 09 09 69 6e 71 75 69 72 | 79 44 61 74 61 3b 0d 09 |..inquir|yData;..|
|000039c0| 09 0d 09 09 43 4c 45 41 | 52 28 64 65 76 69 63 65 |....CLEA|R(device|
|000039d0| 49 6e 71 75 69 72 79 29 | 3b 0d 09 09 64 65 76 69 |Inquiry)|;...devi|
|000039e0| 63 65 49 6e 71 75 69 72 | 79 2e 6f 70 63 6f 64 65 |ceInquir|y.opcode|
|000039f0| 20 3d 20 6b 53 63 73 69 | 43 6d 64 49 6e 71 75 69 | = kScsi|CmdInqui|
|00003a00| 72 79 3b 0d 09 09 64 65 | 76 69 63 65 49 6e 71 75 |ry;...de|viceInqu|
|00003a10| 69 72 79 2e 6c 65 6e 20 | 3d 20 73 69 7a 65 6f 66 |iry.len |= sizeof|
|00003a20| 20 69 6e 71 75 69 72 79 | 44 61 74 61 3b 0d 09 09 | inquiry|Data;...|
|00003a30| 43 4c 45 41 52 28 69 6e | 71 75 69 72 79 44 61 74 |CLEAR(in|quiryDat|
|00003a40| 61 29 3b 0d 09 09 53 68 | 6f 77 53 74 72 69 6e 67 |a);...Sh|owString|
|00003a50| 28 22 5c 70 43 61 6c 6c | 69 6e 67 20 44 65 76 69 |("\pCall|ing Devi|
|00003a60| 63 65 49 6e 71 75 69 72 | 79 22 29 3b 0d 09 09 73 |ceInquir|y");...s|
|00003a70| 74 61 74 75 73 20 3d 20 | 44 6f 4e 43 52 44 72 69 |tatus = |DoNCRDri|
|00003a80| 76 65 72 49 4f 57 69 74 | 68 53 65 6e 73 65 28 0d |verIOWit|hSense(.|
|00003a90| 09 09 09 09 09 6b 4e 43 | 52 44 72 69 76 65 72 49 |.....kNC|RDriverI|
|00003aa0| 6e 70 75 74 41 6c 6c 6f | 77 65 64 2c 0d 09 09 09 |nputAllo|wed,....|
|00003ab0| 09 09 67 53 43 53 49 54 | 61 72 67 65 74 49 44 2c |..gSCSIT|argetID,|
|00003ac0| 0d 09 09 09 09 09 67 53 | 43 53 49 54 61 72 67 65 |......gS|CSITarge|
|00003ad0| 74 4c 55 4e 2c 0d 09 09 | 09 09 09 28 75 6e 73 69 |tLUN,...|...(unsi|
|00003ae0| 67 6e 65 64 20 63 68 61 | 72 20 2a 29 20 26 64 65 |gned cha|r *) &de|
|00003af0| 76 69 63 65 49 6e 71 75 | 69 72 79 2c 0d 09 09 09 |viceInqu|iry,....|
|00003b00| 09 09 28 50 74 72 29 20 | 26 69 6e 71 75 69 72 79 |..(Ptr) |&inquiry|
|00003b10| 44 61 74 61 2c 0d 09 09 | 09 09 09 73 69 7a 65 6f |Data,...|...sizeo|
|00003b20| 66 20 69 6e 71 75 69 72 | 79 44 61 74 61 2c 0d 09 |f inquir|yData,..|
|00003b30| 09 09 09 09 4e 55 4c 4c | 0d 09 09 09 09 29 3b 0d |....NULL|.....);.|
|00003b40| 09 09 69 66 20 28 73 74 | 61 74 75 73 20 3d 3d 20 |..if (st|atus == |
|00003b50| 6e 6f 45 72 72 29 20 7b | 0d 09 09 09 69 6e 71 75 |noErr) {|....inqu|
|00003b60| 69 72 79 44 61 74 61 2e | 76 65 6e 64 6f 72 5b 2d |iryData.|vendor[-|
|00003b70| 31 5d 20 3d 20 38 20 2b | 20 31 36 20 2b 20 34 3b |1] = 8 +| 16 + 4;|
|00003b80| 0d 09 09 09 53 68 6f 77 | 53 74 72 69 6e 67 28 26 |....Show|String(&|
|00003b90| 69 6e 71 75 69 72 79 44 | 61 74 61 2e 76 65 6e 64 |inquiryD|ata.vend|
|00003ba0| 6f 72 5b 2d 31 5d 29 3b | 0d 09 09 7d 0d 09 09 72 |or[-1]);|...}...r|
|00003bb0| 65 74 75 72 6e 20 28 73 | 74 61 74 75 73 29 3b 0d |eturn (s|tatus);.|
|00003bc0| 23 75 6e 64 65 66 20 49 | 4e 51 55 49 52 59 0d 7d |#undef I|NQUIRY.}|
|00003bd0| 0d 0d 4f 53 45 72 72 0d | 44 6f 52 65 61 64 43 61 |..OSErr.|DoReadCa|
|00003be0| 70 61 63 69 74 79 28 76 | 6f 69 64 29 0d 7b 0d 09 |pacity(v|oid).{..|
|00003bf0| 09 4f 53 45 72 72 09 09 | 09 09 09 09 73 74 61 74 |.OSErr..|....stat|
|00003c00| 75 73 3b 0d 09 09 53 43 | 53 49 5f 31 32 5f 42 79 |us;...SC|SI_12_By|
|00003c10| 74 65 5f 43 6f 6d 6d 61 | 6e 64 09 09 63 61 70 61 |te_Comma|nd..capa|
|00003c20| 63 69 74 79 43 6d 64 3b | 0d 09 09 73 74 72 75 63 |cityCmd;|...struc|
|00003c30| 74 20 53 43 53 49 5f 43 | 61 70 61 63 69 74 79 5f |t SCSI_C|apacity_|
|00003c40| 44 61 74 61 20 09 63 61 | 70 61 63 69 74 79 44 61 |Data .ca|pacityDa|
|00003c50| 74 61 3b 0d 0d 09 09 53 | 68 6f 77 53 74 72 69 6e |ta;....S|howStrin|
|00003c60| 67 28 22 5c 70 44 6f 52 | 65 61 64 43 61 70 61 63 |g("\pDoR|eadCapac|
|00003c70| 69 74 79 22 29 3b 0d 09 | 09 43 4c 45 41 52 28 63 |ity");..|.CLEAR(c|
|00003c80| 61 70 61 63 69 74 79 43 | 6d 64 29 3b 0d 09 09 43 |apacityC|md);...C|
|00003c90| 4c 45 41 52 28 63 61 70 | 61 63 69 74 79 44 61 74 |LEAR(cap|acityDat|
|00003ca0| 61 29 3b 0d 09 09 2f 2a | 0d 09 09 20 2a 20 54 68 |a);.../*|... * Th|
|00003cb0| 65 20 36 2d 62 79 74 65 | 20 72 65 61 64 20 63 6f |e 6-byte| read co|
|00003cc0| 6d 6d 61 6e 64 20 63 61 | 6e 20 72 65 61 64 20 75 |mmand ca|n read u|
|00003cd0| 70 20 74 6f 20 31 32 38 | 20 62 6c 6f 63 6b 73 20 |p to 128| blocks |
|00003ce0| 6f 66 20 64 61 74 61 20 | 28 31 2d 31 32 37 20 72 |of data |(1-127 r|
|00003cf0| 65 61 64 73 20 74 68 61 | 74 0d 09 09 20 2a 20 6e |eads tha|t... * n|
|00003d00| 75 6d 62 65 72 20 6f 66 | 20 62 6c 6f 63 6b 73 2c |umber of| blocks,|
|00003d10| 20 77 68 69 6c 65 20 7a | 65 72 6f 20 72 65 61 64 | while z|ero read|
|00003d20| 73 20 31 32 38 20 62 6c | 6f 63 6b 73 29 2e 20 46 |s 128 bl|ocks). F|
|00003d30| 6f 72 20 6d 6f 72 65 20 | 66 6c 65 78 69 62 69 6c |or more |flexibil|
|00003d40| 69 74 79 2c 20 79 6f 75 | 0d 09 09 20 2a 20 73 68 |ity, you|... * sh|
|00003d50| 6f 75 6c 64 20 75 73 65 | 20 74 68 65 20 31 30 2d |ould use| the 10-|
|00003d60| 62 79 74 65 20 52 65 61 | 64 20 63 6f 6d 6d 61 6e |byte Rea|d comman|
|00003d70| 64 2e 0d 09 09 20 2a 2f | 0d 09 09 63 61 70 61 63 |d.... */|...capac|
|00003d80| 69 74 79 43 6d 64 2e 6f | 70 63 6f 64 65 20 3d 20 |ityCmd.o|pcode = |
|00003d90| 6b 53 63 73 69 43 6d 64 | 52 65 61 64 43 61 70 61 |kScsiCmd|ReadCapa|
|00003da0| 63 69 74 79 3b 0d 09 09 | 73 74 61 74 75 73 20 3d |city;...|status =|
|00003db0| 20 44 6f 4e 43 52 44 72 | 69 76 65 72 49 4f 57 69 | DoNCRDr|iverIOWi|
|00003dc0| 74 68 53 65 6e 73 65 28 | 0d 09 09 09 09 09 6b 4e |thSense(|......kN|
|00003dd0| 43 52 44 72 69 76 65 72 | 49 6e 70 75 74 41 6c 6c |CRDriver|InputAll|
|00003de0| 6f 77 65 64 2c 0d 09 09 | 09 09 09 67 53 43 53 49 |owed,...|...gSCSI|
|00003df0| 54 61 72 67 65 74 49 44 | 2c 0d 09 09 09 09 09 67 |TargetID|,......g|
|00003e00| 53 43 53 49 54 61 72 67 | 65 74 4c 55 4e 2c 0d 09 |SCSITarg|etLUN,..|
|00003e10| 09 09 09 09 28 75 6e 73 | 69 67 6e 65 64 20 63 68 |....(uns|igned ch|
|00003e20| 61 72 20 2a 29 20 26 63 | 61 70 61 63 69 74 79 43 |ar *) &c|apacityC|
|00003e30| 6d 64 2c 0d 09 09 09 09 | 09 28 50 74 72 29 20 26 |md,.....|.(Ptr) &|
|00003e40| 63 61 70 61 63 69 74 79 | 44 61 74 61 2c 0d 09 09 |capacity|Data,...|
|00003e50| 09 09 09 73 69 7a 65 6f | 66 20 63 61 70 61 63 69 |...sizeo|f capaci|
|00003e60| 74 79 44 61 74 61 2c 0d | 09 09 09 09 09 4e 55 4c |tyData,.|.....NUL|
|00003e70| 4c 0d 09 09 09 09 29 3b | 0d 09 09 69 66 20 28 73 |L.....);|...if (s|
|00003e80| 74 61 74 75 73 20 3d 3d | 20 6e 6f 45 72 72 29 20 |tatus ==| noErr) |
|00003e90| 7b 0d 09 09 09 67 44 65 | 76 69 63 65 53 69 7a 65 |{....gDe|viceSize|
|00003ea0| 20 3d 0d 09 09 09 09 28 | 20 28 63 61 70 61 63 69 | =.....(| (capaci|
|00003eb0| 74 79 44 61 74 61 2e 6c | 62 6e 34 20 3c 3c 20 32 |tyData.l|bn4 << 2|
|00003ec0| 34 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |4).....|| (capaci|
|00003ed0| 74 79 44 61 74 61 2e 6c | 62 6e 33 20 3c 3c 20 31 |tyData.l|bn3 << 1|
|00003ee0| 36 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |6).....|| (capaci|
|00003ef0| 74 79 44 61 74 61 2e 6c | 62 6e 32 20 3c 3c 20 20 |tyData.l|bn2 << |
|00003f00| 38 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |8).....|| (capaci|
|00003f10| 74 79 44 61 74 61 2e 6c | 62 6e 31 20 20 20 20 20 |tyData.l|bn1 |
|00003f20| 20 29 0d 09 09 09 09 29 | 3b 0d 09 09 09 67 43 75 | ).....)|;....gCu|
|00003f30| 72 72 65 6e 74 42 6c 6f | 63 6b 4c 65 6e 67 74 68 |rrentBlo|ckLength|
|00003f40| 20 3d 0d 09 09 09 09 28 | 20 28 63 61 70 61 63 69 | =.....(| (capaci|
|00003f50| 74 79 44 61 74 61 2e 6c | 65 6e 34 20 3c 3c 20 32 |tyData.l|en4 << 2|
|00003f60| 34 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |4).....|| (capaci|
|00003f70| 74 79 44 61 74 61 2e 6c | 65 6e 33 20 3c 3c 20 31 |tyData.l|en3 << 1|
|00003f80| 36 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |6).....|| (capaci|
|00003f90| 74 79 44 61 74 61 2e 6c | 65 6e 32 20 3c 3c 20 20 |tyData.l|en2 << |
|00003fa0| 38 29 0d 09 09 09 09 7c | 20 28 63 61 70 61 63 69 |8).....|| (capaci|
|00003fb0| 74 79 44 61 74 61 2e 6c | 65 6e 31 20 20 20 20 20 |tyData.l|en1 |
|00003fc0| 20 29 0d 09 09 09 09 29 | 3b 0d 09 09 09 57 72 69 | ).....)|;....Wri|
|00003fd0| 74 65 4c 6f 67 45 6e 74 | 72 79 28 67 4c 6f 67 52 |teLogEnt|ry(gLogR|
|00003fe0| 65 63 6f 72 64 50 74 72 | 2c 20 27 54 65 73 74 27 |ecordPtr|, 'Test'|
|00003ff0| 2c 0d 09 09 09 09 4c 6f | 67 46 6f 72 6d 61 74 33 |,.....Lo|gFormat3|
|00004000| 28 6b 4c 6f 67 46 6f 72 | 6d 61 74 55 6e 73 69 67 |(kLogFor|matUnsig|
|00004010| 6e 65 64 2c 20 6b 4c 6f | 67 46 6f 72 6d 61 74 55 |ned, kLo|gFormatU|
|00004020| 6e 73 69 67 6e 65 64 2c | 20 6b 4c 6f 67 46 6f 72 |nsigned,| kLogFor|
|00004030| 6d 61 74 53 74 72 69 6e | 67 29 2c 0d 09 09 09 09 |matStrin|g),.....|
|00004040| 67 44 65 76 69 63 65 53 | 69 7a 65 2c 20 67 43 75 |gDeviceS|ize, gCu|
|00004050| 72 72 65 6e 74 42 6c 6f | 63 6b 4c 65 6e 67 74 68 |rrentBlo|ckLength|
|00004060| 2c 0d 09 09 09 09 22 5c | 70 44 65 76 69 63 65 20 |,....."\|pDevice |
|00004070| 53 69 7a 65 2c 20 42 6c | 6f 63 6b 20 4c 65 6e 67 |Size, Bl|ock Leng|
|00004080| 74 68 22 0d 09 09 09 29 | 3b 0d 09 09 7d 0d 09 09 |th"....)|;...}...|
|00004090| 72 65 74 75 72 6e 20 28 | 73 74 61 74 75 73 29 3b |return (|status);|
|000040a0| 0d 7d 0d 0d 4f 53 45 72 | 72 0d 44 6f 52 65 61 64 |.}..OSEr|r.DoRead|
|000040b0| 42 6c 6f 63 6b 28 0d 09 | 09 75 6e 73 69 67 6e 65 |Block(..|.unsigne|
|000040c0| 64 20 6c 6f 6e 67 09 09 | 09 62 6c 6f 63 6b 4e 75 |d long..|.blockNu|
|000040d0| 6d 62 65 72 2c 0d 09 09 | 75 6e 73 69 67 6e 65 64 |mber,...|unsigned|
|000040e0| 20 6c 6f 6e 67 09 09 09 | 6e 42 6c 6f 63 6b 73 2c | long...|nBlocks,|
|000040f0| 0d 09 09 42 6f 6f 6c 65 | 61 6e 09 09 09 09 09 64 |...Boole|an.....d|
|00004100| 75 6d 70 42 6c 6f 63 6b | 0d 09 29 0d 7b 0d 09 09 |umpBlock|..).{...|
|00004110| 4f 53 45 72 72 09 09 09 | 09 09 73 74 61 74 75 73 |OSErr...|..status|
|00004120| 3b 0d 09 09 53 43 53 49 | 5f 36 5f 42 79 74 65 5f |;...SCSI|_6_Byte_|
|00004130| 43 6f 6d 6d 61 6e 64 09 | 09 72 65 61 64 44 61 74 |Command.|.readDat|
|00004140| 61 3b 0d 09 09 75 6e 73 | 69 67 6e 65 64 20 6c 6f |a;...uns|igned lo|
|00004150| 6e 67 09 09 09 69 3b 0d | 09 09 42 6f 6f 6c 65 61 |ng...i;.|..Boolea|
|00004160| 6e 09 09 09 09 09 72 65 | 61 64 53 6f 6d 65 74 68 |n.....re|adSometh|
|00004170| 69 6e 67 3b 0d 09 09 75 | 6e 73 69 67 6e 65 64 20 |ing;...u|nsigned |
|00004180| 6c 6f 6e 67 09 09 09 74 | 72 61 6e 73 66 65 72 4c |long...t|ransferL|
|00004190| 65 6e 67 74 68 3b 0d 09 | 09 75 6e 73 69 67 6e 65 |ength;..|.unsigne|
|000041a0| 64 20 6c 6f 6e 67 09 09 | 09 61 63 74 75 61 6c 54 |d long..|.actualT|
|000041b0| 72 61 6e 73 66 65 72 4c | 65 6e 67 74 68 3b 0d 0d |ransferL|ength;..|
|000041c0| 09 09 74 72 61 6e 73 66 | 65 72 4c 65 6e 67 74 68 |..transf|erLength|
|000041d0| 20 3d 20 6e 42 6c 6f 63 | 6b 73 20 2a 20 67 43 75 | = nBloc|ks * gCu|
|000041e0| 72 72 65 6e 74 42 6c 6f | 63 6b 4c 65 6e 67 74 68 |rrentBlo|ckLength|
|000041f0| 3b 0d 09 09 43 6c 65 61 | 72 4d 65 6d 6f 72 79 28 |;...Clea|rMemory(|
|00004200| 67 52 65 61 64 42 75 66 | 66 65 72 50 74 72 2c 20 |gReadBuf|ferPtr, |
|00004210| 74 72 61 6e 73 66 65 72 | 4c 65 6e 67 74 68 29 3b |transfer|Length);|
|00004220| 09 0d 09 09 43 4c 45 41 | 52 28 72 65 61 64 44 61 |....CLEA|R(readDa|
|00004230| 74 61 29 3b 09 0d 09 09 | 2f 2a 0d 09 09 20 2a 20 |ta);....|/*... * |
|00004240| 54 68 65 20 36 2d 62 79 | 74 65 20 72 65 61 64 20 |The 6-by|te read |
|00004250| 63 6f 6d 6d 61 6e 64 20 | 63 61 6e 20 72 65 61 64 |command |can read|
|00004260| 20 75 70 20 74 6f 20 31 | 32 38 20 62 6c 6f 63 6b | up to 1|28 block|
|00004270| 73 20 6f 66 0d 09 09 20 | 2a 20 64 61 74 61 20 28 |s of... |* data (|
|00004280| 31 2d 31 32 37 20 72 65 | 61 64 73 20 74 68 61 74 |1-127 re|ads that|
|00004290| 20 6e 75 6d 62 65 72 20 | 6f 66 20 62 6c 6f 63 6b | number |of block|
|000042a0| 73 2c 20 77 68 69 6c 65 | 20 7a 65 72 6f 0d 09 09 |s, while| zero...|
|000042b0| 20 2a 20 72 65 61 64 73 | 20 31 32 38 20 62 6c 6f | * reads| 128 blo|
|000042c0| 63 6b 73 29 2e 20 46 6f | 72 20 6d 6f 72 65 20 66 |cks). Fo|r more f|
|000042d0| 6c 65 78 69 62 69 6c 69 | 74 79 2c 20 79 6f 75 20 |lexibili|ty, you |
|000042e0| 73 68 6f 75 6c 64 0d 09 | 09 20 2a 20 75 73 65 20 |should..|. * use |
|000042f0| 74 68 65 20 31 30 2d 62 | 79 74 65 20 52 65 61 64 |the 10-b|yte Read|
|00004300| 20 63 6f 6d 6d 61 6e 64 | 2e 0d 09 09 20 2a 2f 0d | command|.... */.|
|00004310| 09 09 72 65 61 64 44 61 | 74 61 2e 6f 70 63 6f 64 |..readDa|ta.opcod|
|00004320| 65 20 3d 20 6b 53 63 73 | 69 43 6d 64 52 65 61 64 |e = kScs|iCmdRead|
|00004330| 36 3b 0d 09 09 72 65 61 | 64 44 61 74 61 2e 6c 65 |6;...rea|dData.le|
|00004340| 6e 20 3d 20 6e 42 6c 6f | 63 6b 73 3b 0d 09 09 69 |n = nBlo|cks;...i|
|00004350| 66 20 28 72 65 61 64 44 | 61 74 61 2e 6c 65 6e 20 |f (readD|ata.len |
|00004360| 3d 3d 20 30 29 09 2f 2a | 20 5a 65 72 6f 20 6d 65 |== 0)./*| Zero me|
|00004370| 61 6e 73 20 31 32 38 20 | 2a 2f 0d 09 09 09 72 65 |ans 128 |*/....re|
|00004380| 61 64 44 61 74 61 2e 6c | 65 6e 20 3d 20 31 3b 0d |adData.l|en = 1;.|
|00004390| 09 09 72 65 61 64 44 61 | 74 61 2e 6c 62 6e 33 20 |..readDa|ta.lbn3 |
|000043a0| 3d 20 28 62 6c 6f 63 6b | 4e 75 6d 62 65 72 20 3e |= (block|Number >|
|000043b0| 3e 20 31 36 29 20 26 20 | 30 78 46 46 3b 0d 09 09 |> 16) & |0xFF;...|
|000043c0| 72 65 61 64 44 61 74 61 | 2e 6c 62 6e 32 20 3d 20 |readData|.lbn2 = |
|000043d0| 28 62 6c 6f 63 6b 4e 75 | 6d 62 65 72 20 3e 3e 20 |(blockNu|mber >> |
|000043e0| 20 38 29 20 26 20 30 78 | 46 46 3b 0d 09 09 72 65 | 8) & 0x|FF;...re|
|000043f0| 61 64 44 61 74 61 2e 6c | 62 6e 31 20 3d 20 28 62 |adData.l|bn1 = (b|
|00004400| 6c 6f 63 6b 4e 75 6d 62 | 65 72 20 3e 3e 20 20 30 |lockNumb|er >> 0|
|00004410| 29 20 26 20 30 78 46 46 | 3b 0d 09 09 57 72 69 74 |) & 0xFF|;...Writ|
|00004420| 65 4c 6f 67 45 6e 74 72 | 79 28 67 4c 6f 67 52 65 |eLogEntr|y(gLogRe|
|00004430| 63 6f 72 64 50 74 72 2c | 20 27 52 65 61 64 27 2c |cordPtr,| 'Read',|
|00004440| 0d 09 09 09 4c 6f 67 46 | 6f 72 6d 61 74 34 28 6b |....LogF|ormat4(k|
|00004450| 4c 6f 67 46 6f 72 6d 61 | 74 55 6e 73 69 67 6e 65 |LogForma|tUnsigne|
|00004460| 64 2c 20 6b 4c 6f 67 46 | 6f 72 6d 61 74 55 6e 73 |d, kLogF|ormatUns|
|00004470| 69 67 6e 65 64 2c 0d 09 | 09 09 09 6b 4c 6f 67 46 |igned,..|...kLogF|
|00004480| 6f 72 6d 61 74 55 6e 73 | 69 67 6e 65 64 2c 20 6b |ormatUns|igned, k|
|00004490| 4c 6f 67 46 6f 72 6d 61 | 74 53 74 72 69 6e 67 29 |LogForma|tString)|
|000044a0| 2c 0d 09 09 09 62 6c 6f | 63 6b 4e 75 6d 62 65 72 |,....blo|ckNumber|
|000044b0| 2c 20 6e 42 6c 6f 63 6b | 73 2c 20 74 72 61 6e 73 |, nBlock|s, trans|
|000044c0| 66 65 72 4c 65 6e 67 74 | 68 2c 0d 09 09 09 22 5c |ferLengt|h,...."\|
|000044d0| 70 52 65 61 64 20 62 6c | 6f 63 6b 22 0d 09 09 29 |pRead bl|ock"...)|
|000044e0| 3b 0d 09 09 73 74 61 74 | 75 73 20 3d 20 44 6f 4e |;...stat|us = DoN|
|000044f0| 43 52 44 72 69 76 65 72 | 49 4f 57 69 74 68 53 65 |CRDriver|IOWithSe|
|00004500| 6e 73 65 28 0d 09 09 09 | 09 09 6b 4e 43 52 44 72 |nse(....|..kNCRDr|
|00004510| 69 76 65 72 49 6e 70 75 | 74 41 6c 6c 6f 77 65 64 |iverInpu|tAllowed|
|00004520| 2c 0d 09 09 09 09 09 67 | 53 43 53 49 54 61 72 67 |,......g|SCSITarg|
|00004530| 65 74 49 44 2c 0d 09 09 | 09 09 09 67 53 43 53 49 |etID,...|...gSCSI|
|00004540| 54 61 72 67 65 74 4c 55 | 4e 2c 0d 09 09 09 09 09 |TargetLU|N,......|
|00004550| 28 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 2a |(unsigne|d char *|
|00004560| 29 20 26 72 65 61 64 44 | 61 74 61 2c 0d 09 09 09 |) &readD|ata,....|
|00004570| 09 09 28 50 74 72 29 20 | 67 52 65 61 64 42 75 66 |..(Ptr) |gReadBuf|
|00004580| 66 65 72 50 74 72 2c 0d | 09 09 09 09 09 74 72 61 |ferPtr,.|.....tra|
|00004590| 6e 73 66 65 72 4c 65 6e | 67 74 68 2c 0d 09 09 09 |nsferLen|gth,....|
|000045a0| 09 09 26 61 63 74 75 61 | 6c 54 72 61 6e 73 66 65 |..&actua|lTransfe|
|000045b0| 72 4c 65 6e 67 74 68 0d | 09 09 09 09 29 3b 0d 09 |rLength.|....);..|
|000045c0| 09 72 65 61 64 53 6f 6d | 65 74 68 69 6e 67 20 3d |.readSom|ething =|
|000045d0| 20 46 41 4c 53 45 3b 0d | 09 09 66 6f 72 20 28 69 | FALSE;.|..for (i|
|000045e0| 20 3d 20 30 3b 20 69 20 | 3c 20 61 63 74 75 61 6c | = 0; i |< actual|
|000045f0| 54 72 61 6e 73 66 65 72 | 4c 65 6e 67 74 68 3b 20 |Transfer|Length; |
|00004600| 69 2b 2b 29 20 7b 0d 09 | 09 09 69 66 20 28 67 52 |i++) {..|..if (gR|
|00004610| 65 61 64 42 75 66 66 65 | 72 50 74 72 5b 69 5d 20 |eadBuffe|rPtr[i] |
|00004620| 21 3d 20 30 29 20 7b 0d | 09 09 09 09 72 65 61 64 |!= 0) {.|....read|
|00004630| 53 6f 6d 65 74 68 69 6e | 67 20 3d 20 54 52 55 45 |Somethin|g = TRUE|
|00004640| 3b 0d 09 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 09 |;.....br|eak;....|
|00004650| 7d 0d 09 09 7d 0d 09 09 | 69 66 20 28 64 75 6d 70 |}...}...|if (dump|
|00004660| 42 6c 6f 63 6b 29 20 7b | 0d 09 09 09 69 66 20 28 |Block) {|....if (|
|00004670| 72 65 61 64 53 6f 6d 65 | 74 68 69 6e 67 20 3d 3d |readSome|thing ==|
|00004680| 20 46 41 4c 53 45 29 0d | 09 09 09 09 53 68 6f 77 | FALSE).|....Show|
|00004690| 44 65 63 69 6d 61 6c 28 | 62 6c 6f 63 6b 4e 75 6d |Decimal(|blockNum|
|000046a0| 62 65 72 2c 20 22 5c 70 | 52 65 61 64 42 6c 6f 63 |ber, "\p|ReadBloc|
|000046b0| 6b 20 69 73 20 4e 55 4c | 4c 20 61 66 74 65 72 20 |k is NUL|L after |
|000046c0| 72 65 61 64 22 29 3b 0d | 09 09 09 65 6c 73 65 20 |read");.|...else |
|000046d0| 7b 0d 09 09 09 09 53 68 | 6f 77 44 65 63 69 6d 61 |{.....Sh|owDecima|
|000046e0| 6c 28 62 6c 6f 63 6b 4e | 75 6d 62 65 72 2c 20 22 |l(blockN|umber, "|
|000046f0| 5c 70 52 65 61 64 42 6c | 6f 63 6b 20 72 65 73 75 |\pReadBl|ock resu|
|00004700| 6c 74 73 22 29 3b 0d 09 | 09 09 09 53 68 6f 77 4d |lts");..|...ShowM|
|00004710| 65 6d 6f 72 79 28 28 50 | 74 72 29 20 67 52 65 61 |emory((P|tr) gRea|
|00004720| 64 42 75 66 66 65 72 50 | 74 72 2c 20 61 63 74 75 |dBufferP|tr, actu|
|00004730| 61 6c 54 72 61 6e 73 66 | 65 72 4c 65 6e 67 74 68 |alTransf|erLength|
|00004740| 29 3b 0d 09 09 09 7d 0d | 09 09 7d 0d 09 09 69 66 |);....}.|..}...if|
|00004750| 20 28 73 74 61 74 75 73 | 20 3d 3d 20 6e 6f 45 72 | (status| == noEr|
|00004760| 72 20 26 26 20 61 63 74 | 75 61 6c 54 72 61 6e 73 |r && act|ualTrans|
|00004770| 66 65 72 4c 65 6e 67 74 | 68 20 21 3d 20 74 72 61 |ferLengt|h != tra|
|00004780| 6e 73 66 65 72 4c 65 6e | 67 74 68 29 20 7b 0d 09 |nsferLen|gth) {..|
|00004790| 09 09 53 68 6f 77 53 74 | 72 69 6e 67 28 22 5c 70 |..ShowSt|ring("\p|
|000047a0| 53 68 6f 72 74 20 74 72 | 61 6e 73 66 65 72 22 29 |Short tr|ansfer")|
|000047b0| 3b 0d 09 09 09 73 74 61 | 74 75 73 20 3d 20 69 6f |;....sta|tus = io|
|000047c0| 45 72 72 3b 0d 09 09 7d | 0d 09 09 72 65 74 75 72 |Err;...}|...retur|
|000047d0| 6e 20 28 73 74 61 74 75 | 73 29 3b 0d 7d 0d 0d 4f |n (statu|s);.}..O|
|000047e0| 53 45 72 72 0d 44 6f 4e | 43 52 44 72 69 76 65 72 |SErr.DoN|CRDriver|
|000047f0| 49 4f 57 69 74 68 53 65 | 6e 73 65 28 0d 09 09 75 |IOWithSe|nse(...u|
|00004800| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 09 09 09 |nsigned |short...|
|00004810| 64 72 69 76 65 72 41 63 | 74 69 6f 6e 2c 09 09 2f |driverAc|tion,../|
|00004820| 2a 20 49 6e 70 75 74 2c | 20 6f 75 74 70 75 74 2c |* Input,| output,|
|00004830| 20 6f 72 20 6e 6f 74 68 | 69 6e 67 09 2a 2f 0d 09 | or noth|ing.*/..|
|00004840| 09 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 09 |.unsigne|d short.|
|00004850| 09 09 74 61 72 67 65 74 | 49 44 2c 09 09 09 2f 2a |..target|ID,.../*|
|00004860| 20 53 43 53 49 20 42 75 | 73 20 49 44 09 09 09 09 | SCSI Bu|s ID....|
|00004870| 09 2a 2f 0d 09 09 75 6e | 73 69 67 6e 65 64 20 73 |.*/...un|signed s|
|00004880| 68 6f 72 74 09 09 09 74 | 61 72 67 65 74 4c 55 4e |hort...t|argetLUN|
|00004890| 2c 09 09 09 2f 2a 20 53 | 43 53 49 20 4c 55 4e 20 |,.../* S|CSI LUN |
|000048a0| 2d 2d 20 6e 6f 74 20 73 | 75 70 70 6f 72 74 65 64 |-- not s|upported|
|000048b0| 09 2a 2f 0d 09 09 63 6f | 6e 73 74 20 75 6e 73 69 |.*/...co|nst unsi|
|000048c0| 67 6e 65 64 20 63 68 61 | 72 09 09 2a 73 63 73 69 |gned cha|r..*scsi|
|000048d0| 43 6f 6d 6d 61 6e 64 2c | 09 09 2f 2a 20 53 43 53 |Command,|../* SCS|
|000048e0| 49 20 43 6f 6d 6d 61 6e | 64 20 69 74 73 65 6c 66 |I Comman|d itself|
|000048f0| 09 09 09 2a 2f 0d 09 09 | 50 74 72 09 09 09 09 09 |...*/...|Ptr.....|
|00004900| 09 64 61 74 61 42 75 66 | 66 65 72 50 74 72 2c 09 |.dataBuf|ferPtr,.|
|00004910| 09 2f 2a 20 55 73 65 72 | 20 64 61 74 61 20 62 75 |./* User| data bu|
|00004920| 66 66 65 72 20 6f 72 20 | 4e 55 4c 4c 20 09 2a 2f |ffer or |NULL .*/|
|00004930| 0d 09 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |...unsig|ned long|
|00004940| 09 09 09 74 72 61 6e 73 | 66 65 72 43 6f 75 6e 74 |...trans|ferCount|
|00004950| 2c 0d 09 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |,...unsi|gned lon|
|00004960| 67 09 09 09 2a 61 63 74 | 75 61 6c 54 72 61 6e 73 |g...*act|ualTrans|
|00004970| 66 65 72 43 6f 75 6e 74 | 0d 09 29 0d 7b 0d 09 09 |ferCount|..).{...|
|00004980| 4f 53 45 72 72 09 09 09 | 09 09 73 74 61 74 75 73 |OSErr...|..status|
|00004990| 3b 0d 09 09 42 6f 6f 6c | 65 61 6e 09 09 09 09 09 |;...Bool|ean.....|
|000049a0| 72 65 74 72 79 3b 0d 09 | 09 73 68 6f 72 74 09 09 |retry;..|.short..|
|000049b0| 09 09 09 74 72 69 61 6c | 73 3b 0d 09 09 0d 09 09 |...trial|s;......|
|000049c0| 72 65 74 72 79 20 3d 20 | 54 52 55 45 3b 0d 09 09 |retry = |TRUE;...|
|000049d0| 66 6f 72 20 28 74 72 69 | 61 6c 73 20 3d 20 30 3b |for (tri|als = 0;|
|000049e0| 20 74 72 69 61 6c 73 20 | 3c 20 33 20 26 26 20 72 | trials |< 3 && r|
|000049f0| 65 74 72 79 3b 20 74 72 | 69 61 6c 73 2b 2b 29 20 |etry; tr|ials++) |
|00004a00| 7b 0d 09 09 09 72 65 74 | 72 79 20 3d 20 46 41 4c |{....ret|ry = FAL|
|00004a10| 53 45 3b 0d 09 09 09 73 | 74 61 74 75 73 20 3d 20 |SE;....s|tatus = |
|00004a20| 44 6f 4e 43 52 44 72 69 | 76 65 72 49 4f 28 0d 09 |DoNCRDri|verIO(..|
|00004a30| 09 09 09 09 09 64 72 69 | 76 65 72 41 63 74 69 6f |.....dri|verActio|
|00004a40| 6e 2c 0d 09 09 09 09 09 | 09 74 61 72 67 65 74 49 |n,......|.targetI|
|00004a50| 44 2c 0d 09 09 09 09 09 | 09 74 61 72 67 65 74 4c |D,......|.targetL|
|00004a60| 55 4e 2c 0d 09 09 09 09 | 09 09 73 63 73 69 43 6f |UN,.....|..scsiCo|
|00004a70| 6d 6d 61 6e 64 2c 0d 09 | 09 09 09 09 09 64 61 74 |mmand,..|.....dat|
|00004a80| 61 42 75 66 66 65 72 50 | 74 72 2c 0d 09 09 09 09 |aBufferP|tr,.....|
|00004a90| 09 09 74 72 61 6e 73 66 | 65 72 43 6f 75 6e 74 2c |..transf|erCount,|
|00004aa0| 0d 09 09 09 09 09 09 61 | 63 74 75 61 6c 54 72 61 |.......a|ctualTra|
|00004ab0| 6e 73 66 65 72 43 6f 75 | 6e 74 0d 09 09 09 09 09 |nsferCou|nt......|
|00004ac0| 29 3b 0d 09 09 09 69 66 | 20 28 73 74 61 74 75 73 |);....if| (status|
|00004ad0| 20 3d 3d 20 73 63 73 69 | 4e 6f 6e 5a 65 72 6f 53 | == scsi|NonZeroS|
|00004ae0| 74 61 74 75 73 29 20 7b | 0d 09 09 09 09 72 65 74 |tatus) {|.....ret|
|00004af0| 72 79 20 3d 20 44 6f 52 | 65 71 75 65 73 74 53 65 |ry = DoR|equestSe|
|00004b00| 6e 73 65 28 74 61 72 67 | 65 74 49 44 2c 20 74 61 |nse(targ|etID, ta|
|00004b10| 72 67 65 74 4c 55 4e 29 | 3b 0d 09 09 09 09 69 66 |rgetLUN)|;.....if|
|00004b20| 20 28 72 65 74 72 79 29 | 0d 09 09 09 09 09 53 68 | (retry)|......Sh|
|00004b30| 6f 77 53 74 72 69 6e 67 | 28 22 5c 70 52 65 74 72 |owString|("\pRetr|
|00004b40| 79 20 61 66 74 65 72 20 | 55 6e 69 74 20 41 74 74 |y after |Unit Att|
|00004b50| 65 6e 74 69 6f 6e 22 29 | 3b 0d 09 09 09 7d 0d 09 |ention")|;....}..|
|00004b60| 09 7d 3b 0d 09 09 72 65 | 74 75 72 6e 20 28 73 74 |.};...re|turn (st|
|00004b70| 61 74 75 73 29 3b 0d 7d | 0d 0d 2f 2a 0d 20 2a 20 |atus);.}|../*. * |
|00004b80| 52 65 74 75 72 6e 20 54 | 52 55 45 20 69 66 20 74 |Return T|RUE if t|
|00004b90| 68 69 73 20 69 73 20 55 | 6e 69 74 20 41 74 74 65 |his is U|nit Atte|
|00004ba0| 6e 74 69 6f 6e 0d 20 2a | 2f 0d 42 6f 6f 6c 65 61 |ntion. *|/.Boolea|
|00004bb0| 6e 0d 44 6f 52 65 71 75 | 65 73 74 53 65 6e 73 65 |n.DoRequ|estSense|
|00004bc0| 28 0d 09 09 75 6e 73 69 | 67 6e 65 64 20 73 68 6f |(...unsi|gned sho|
|00004bd0| 72 74 09 09 09 74 61 72 | 67 65 74 49 44 2c 09 09 |rt...tar|getID,..|
|00004be0| 09 2f 2a 20 53 43 53 49 | 20 42 75 73 20 49 44 09 |./* SCSI| Bus ID.|
|00004bf0| 09 09 09 09 2a 2f 0d 09 | 09 75 6e 73 69 67 6e 65 |....*/..|.unsigne|
|00004c00| 64 20 73 68 6f 72 74 09 | 09 09 74 61 72 67 65 74 |d short.|..target|
|00004c10| 4c 55 4e 09 09 09 2f 2a | 20 53 43 53 49 20 4c 55 |LUN.../*| SCSI LU|
|00004c20| 4e 20 2d 2d 20 6e 6f 74 | 20 73 75 70 70 6f 72 74 |N -- not| support|
|00004c30| 65 64 09 2a 2f 0d 09 29 | 0d 7b 0d 09 09 4f 53 45 |ed.*/..)|.{...OSE|
|00004c40| 72 72 09 09 09 09 09 73 | 74 61 74 75 73 3b 0d 09 |rr.....s|tatus;..|
|00004c50| 09 53 43 53 49 5f 36 5f | 42 79 74 65 5f 43 6f 6d |.SCSI_6_|Byte_Com|
|00004c60| 6d 61 6e 64 09 09 72 65 | 71 75 65 73 74 53 65 6e |mand..re|questSen|
|00004c70| 73 65 3b 0d 09 09 75 6e | 73 69 67 6e 65 64 20 6c |se;...un|signed l|
|00004c80| 6f 6e 67 09 09 09 61 63 | 74 75 61 6c 54 72 61 6e |ong...ac|tualTran|
|00004c90| 73 66 65 72 43 6f 75 6e | 74 3b 0d 09 09 53 43 53 |sferCoun|t;...SCS|
|00004ca0| 49 5f 53 65 6e 73 65 5f | 44 61 74 61 09 09 09 73 |I_Sense_|Data...s|
|00004cb0| 65 6e 73 65 3b 0d 09 09 | 42 6f 6f 6c 65 61 6e 09 |ense;...|Boolean.|
|00004cc0| 09 09 09 09 72 65 73 75 | 6c 74 3b 0d 09 09 0d 09 |....resu|lt;.....|
|00004cd0| 09 43 4c 45 41 52 28 72 | 65 71 75 65 73 74 53 65 |.CLEAR(r|equestSe|
|00004ce0| 6e 73 65 29 3b 0d 09 09 | 43 4c 45 41 52 28 73 65 |nse);...|CLEAR(se|
|00004cf0| 6e 73 65 29 3b 0d 09 09 | 72 65 71 75 65 73 74 53 |nse);...|requestS|
|00004d00| 65 6e 73 65 2e 6f 70 63 | 6f 64 65 20 3d 20 6b 53 |ense.opc|ode = kS|
|00004d10| 63 73 69 43 6d 64 52 65 | 71 75 65 73 74 53 65 6e |csiCmdRe|questSen|
|00004d20| 73 65 3b 0d 09 09 72 65 | 71 75 65 73 74 53 65 6e |se;...re|questSen|
|00004d30| 73 65 2e 6c 65 6e 20 3d | 20 73 69 7a 65 6f 66 20 |se.len =| sizeof |
|00004d40| 73 65 6e 73 65 3b 0d 09 | 09 73 74 61 74 75 73 20 |sense;..|.status |
|00004d50| 3d 20 44 6f 4e 43 52 44 | 72 69 76 65 72 49 4f 28 |= DoNCRD|riverIO(|
|00004d60| 0d 09 09 09 6b 4e 43 52 | 44 72 69 76 65 72 49 6e |....kNCR|DriverIn|
|00004d70| 70 75 74 41 6c 6c 6f 77 | 65 64 2c 0d 09 09 09 74 |putAllow|ed,....t|
|00004d80| 61 72 67 65 74 49 44 2c | 0d 09 09 09 74 61 72 67 |argetID,|....targ|
|00004d90| 65 74 4c 55 4e 2c 0d 09 | 09 09 28 75 6e 73 69 67 |etLUN,..|..(unsig|
|00004da0| 6e 65 64 20 63 68 61 72 | 20 2a 29 20 26 72 65 71 |ned char| *) &req|
|00004db0| 75 65 73 74 53 65 6e 73 | 65 2c 0d 09 09 09 28 50 |uestSens|e,....(P|
|00004dc0| 74 72 29 20 26 73 65 6e | 73 65 2c 0d 09 09 09 73 |tr) &sen|se,....s|
|00004dd0| 69 7a 65 6f 66 20 73 65 | 6e 73 65 2c 0d 09 09 09 |izeof se|nse,....|
|00004de0| 26 61 63 74 75 61 6c 54 | 72 61 6e 73 66 65 72 43 |&actualT|ransferC|
|00004df0| 6f 75 6e 74 0d 09 09 29 | 3b 0d 09 09 72 65 73 75 |ount...)|;...resu|
|00004e00| 6c 74 20 3d 20 53 68 6f | 77 52 65 71 75 65 73 74 |lt = Sho|wRequest|
|00004e10| 53 65 6e 73 65 28 74 61 | 72 67 65 74 49 44 2c 20 |Sense(ta|rgetID, |
|00004e20| 74 61 72 67 65 74 4c 55 | 4e 2c 20 73 74 61 74 75 |targetLU|N, statu|
|00004e30| 73 2c 20 26 73 65 6e 73 | 65 2c 20 61 63 74 75 61 |s, &sens|e, actua|
|00004e40| 6c 54 72 61 6e 73 66 65 | 72 43 6f 75 6e 74 29 3b |lTransfe|rCount);|
|00004e50| 0d 09 09 72 65 74 75 72 | 6e 20 28 72 65 73 75 6c |...retur|n (resul|
|00004e60| 74 29 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 44 6f 4e |t);.}../|*. * DoN|
|00004e70| 43 52 44 72 69 76 65 72 | 49 4f 20 72 65 74 75 72 |CRDriver|IO retur|
|00004e80| 6e 73 20 6b 4e 43 52 4e | 6f 6e 5a 65 72 6f 53 74 |ns kNCRN|onZeroSt|
|00004e90| 61 74 75 73 20 69 66 20 | 74 68 65 20 74 61 72 67 |atus if |the targ|
|00004ea0| 65 74 20 72 65 74 75 72 | 6e 65 64 20 43 68 65 63 |et retur|ned Chec|
|00004eb0| 6b 43 6f 6e 64 69 74 69 | 6f 6e 2e 0d 20 2a 2f 0d |kConditi|on.. */.|
|00004ec0| 4f 53 45 72 72 0d 44 6f | 4e 43 52 44 72 69 76 65 |OSErr.Do|NCRDrive|
|00004ed0| 72 49 4f 28 0d 09 09 75 | 6e 73 69 67 6e 65 64 20 |rIO(...u|nsigned |
|00004ee0| 73 68 6f 72 74 09 09 09 | 64 72 69 76 65 72 41 63 |short...|driverAc|
|00004ef0| 74 69 6f 6e 2c 09 09 2f | 2a 20 49 6e 70 75 74 2c |tion,../|* Input,|
|00004f00| 20 6f 75 74 70 75 74 2c | 20 6f 72 20 6e 6f 74 68 | output,| or noth|
|00004f10| 69 6e 67 09 2a 2f 0d 09 | 09 75 6e 73 69 67 6e 65 |ing.*/..|.unsigne|
|00004f20| 64 20 73 68 6f 72 74 09 | 09 09 74 61 72 67 65 74 |d short.|..target|
|00004f30| 49 44 2c 09 09 09 2f 2a | 20 53 43 53 49 20 42 75 |ID,.../*| SCSI Bu|
|00004f40| 73 20 49 44 09 09 09 09 | 09 2a 2f 0d 09 09 75 6e |s ID....|.*/...un|
|00004f50| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 09 09 09 74 |signed s|hort...t|
|00004f60| 61 72 67 65 74 4c 55 4e | 2c 09 09 09 2f 2a 20 53 |argetLUN|,.../* S|
|00004f70| 43 53 49 20 4c 55 4e 20 | 2d 2d 20 6e 6f 74 20 73 |CSI LUN |-- not s|
|00004f80| 75 70 70 6f 72 74 65 64 | 09 2a 2f 0d 09 09 63 6f |upported|.*/...co|
|00004f90| 6e 73 74 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |nst unsi|gned cha|
|00004fa0| 72 09 09 2a 73 63 73 69 | 43 6f 6d 6d 61 6e 64 2c |r..*scsi|Command,|
|00004fb0| 09 09 2f 2a 20 53 43 53 | 49 20 43 6f 6d 6d 61 6e |../* SCS|I Comman|
|00004fc0| 64 20 69 74 73 65 6c 66 | 09 09 09 2a 2f 0d 09 09 |d itself|...*/...|
|00004fd0| 50 74 72 09 09 09 09 09 | 09 64 61 74 61 42 75 66 |Ptr.....|.dataBuf|
|00004fe0| 66 65 72 50 74 72 2c 09 | 09 2f 2a 20 55 73 65 72 |ferPtr,.|./* User|
|00004ff0| 20 64 61 74 61 20 62 75 | 66 66 65 72 20 6f 72 20 | data bu|ffer or |
|00005000| 4e 55 4c 4c 20 09 2a 2f | 0d 09 09 75 6e 73 69 67 |NULL .*/|...unsig|
|00005010| 6e 65 64 20 6c 6f 6e 67 | 09 09 09 74 72 61 6e 73 |ned long|...trans|
|00005020| 66 65 72 43 6f 75 6e 74 | 2c 0d 09 09 75 6e 73 69 |ferCount|,...unsi|
|00005030| 67 6e 65 64 20 6c 6f 6e | 67 09 09 09 2a 61 63 74 |gned lon|g...*act|
|00005040| 75 61 6c 54 72 61 6e 73 | 66 65 72 43 6f 75 6e 74 |ualTrans|ferCount|
|00005050| 0d 09 29 0d 7b 0d 09 09 | 4f 53 45 72 72 09 09 09 |..).{...|OSErr...|
|00005060| 09 09 73 74 61 74 75 73 | 3b 0d 23 64 65 66 69 6e |..status|;.#defin|
|00005070| 65 20 4e 43 52 09 28 67 | 4e 43 52 53 43 53 49 50 |e NCR.(g|NCRSCSIP|
|00005080| 61 72 61 6d 29 0d 23 64 | 65 66 69 6e 65 20 50 42 |aram).#d|efine PB|
|00005090| 09 28 67 49 4f 50 61 72 | 61 6d 29 0d 0d 09 09 73 |.(gIOPar|am)....s|
|000050a0| 74 61 74 75 73 20 3d 20 | 6e 6f 45 72 72 3b 0d 09 |tatus = |noErr;..|
|000050b0| 09 2f 2a 0d 09 09 20 2a | 20 53 65 74 75 70 20 74 |./*... *| Setup t|
|000050c0| 68 65 20 70 61 72 61 6d | 65 74 65 72 20 62 6c 6f |he param|eter blo|
|000050d0| 63 6b 0d 09 09 20 2a 2f | 0d 09 09 43 4c 45 41 52 |ck... */|...CLEAR|
|000050e0| 28 50 42 29 3b 0d 09 09 | 43 4c 45 41 52 28 4e 43 |(PB);...|CLEAR(NC|
|000050f0| 52 29 3b 0d 09 09 50 42 | 2e 69 6f 52 65 66 4e 75 |R);...PB|.ioRefNu|
|00005100| 6d 20 3d 20 67 44 72 69 | 76 65 72 52 65 66 4e 75 |m = gDri|verRefNu|
|00005110| 6d 3b 0d 09 09 4e 43 52 | 2e 64 72 69 76 65 72 41 |m;...NCR|.driverA|
|00005120| 63 74 69 6f 6e 20 3d 20 | 64 72 69 76 65 72 41 63 |ction = |driverAc|
|00005130| 74 69 6f 6e 3b 0d 09 09 | 4e 43 52 2e 74 61 72 67 |tion;...|NCR.targ|
|00005140| 65 74 49 44 20 3d 20 74 | 61 72 67 65 74 49 44 3b |etID = t|argetID;|
|00005150| 0d 09 09 4e 43 52 2e 6c | 6f 67 69 63 61 6c 55 6e |...NCR.l|ogicalUn|
|00005160| 69 74 4e 75 6d 62 65 72 | 20 3d 20 74 61 72 67 65 |itNumber| = targe|
|00005170| 74 4c 55 4e 3b 0d 09 09 | 4e 43 52 2e 73 63 73 69 |tLUN;...|NCR.scsi|
|00005180| 43 6f 6d 6d 61 6e 64 4c | 65 6e 67 74 68 20 3d 20 |CommandL|ength = |
|00005190| 53 43 53 49 47 65 74 43 | 6f 6d 6d 61 6e 64 4c 65 |SCSIGetC|ommandLe|
|000051a0| 6e 67 74 68 28 73 63 73 | 69 43 6f 6d 6d 61 6e 64 |ngth(scs|iCommand|
|000051b0| 29 3b 0d 09 09 42 6c 6f | 63 6b 4d 6f 76 65 28 73 |);...Blo|ckMove(s|
|000051c0| 63 73 69 43 6f 6d 6d 61 | 6e 64 2c 20 4e 43 52 2e |csiComma|nd, NCR.|
|000051d0| 73 63 73 69 43 6f 6d 6d | 61 6e 64 2c 20 4e 43 52 |scsiComm|and, NCR|
|000051e0| 2e 73 63 73 69 43 6f 6d | 6d 61 6e 64 4c 65 6e 67 |.scsiCom|mandLeng|
|000051f0| 74 68 29 3b 0d 09 09 4e | 43 52 2e 77 61 74 63 68 |th);...N|CR.watch|
|00005200| 64 6f 67 54 69 6d 65 6f | 75 74 20 3d 20 6b 54 69 |dogTimeo|ut = kTi|
|00005210| 6d 65 6f 75 74 3b 09 09 | 2f 2a 20 50 72 65 73 75 |meout;..|/* Presu|
|00005220| 6d 61 62 6c 79 20 61 20 | 74 77 6f 20 73 65 63 6f |mably a |two seco|
|00005230| 6e 64 20 74 69 6d 65 6f | 75 74 09 2a 2f 0d 09 09 |nd timeo|ut.*/...|
|00005240| 50 42 2e 69 6f 4d 69 73 | 63 20 3d 20 28 50 74 72 |PB.ioMis|c = (Ptr|
|00005250| 29 20 26 67 4e 43 52 53 | 43 53 49 50 61 72 61 6d |) &gNCRS|CSIParam|
|00005260| 3b 0d 09 09 50 42 2e 69 | 6f 42 75 66 66 65 72 20 |;...PB.i|oBuffer |
|00005270| 3d 20 64 61 74 61 42 75 | 66 66 65 72 50 74 72 3b |= dataBu|fferPtr;|
|00005280| 0d 09 09 50 42 2e 69 6f | 52 65 71 43 6f 75 6e 74 |...PB.io|ReqCount|
|00005290| 20 3d 20 74 72 61 6e 73 | 66 65 72 43 6f 75 6e 74 | = trans|ferCount|
|000052a0| 3b 0d 09 09 69 66 20 28 | 28 64 72 69 76 65 72 41 |;...if (|(driverA|
|000052b0| 63 74 69 6f 6e 20 26 20 | 6b 4e 43 52 44 72 69 76 |ction & |kNCRDriv|
|000052c0| 65 72 4f 75 74 70 75 74 | 41 6c 6c 6f 77 65 64 29 |erOutput|Allowed)|
|000052d0| 20 21 3d 20 30 29 0d 09 | 09 09 73 74 61 74 75 73 | != 0)..|..status|
|000052e0| 20 3d 20 50 42 57 72 69 | 74 65 53 79 6e 63 28 28 | = PBWri|teSync((|
|000052f0| 50 61 72 6d 42 6c 6b 50 | 74 72 29 20 26 50 42 29 |ParmBlkP|tr) &PB)|
|00005300| 3b 0d 09 09 65 6c 73 65 | 20 7b 0d 09 09 09 73 74 |;...else| {....st|
|00005310| 61 74 75 73 20 3d 20 50 | 42 52 65 61 64 53 79 6e |atus = P|BReadSyn|
|00005320| 63 28 28 50 61 72 6d 42 | 6c 6b 50 74 72 29 20 26 |c((ParmB|lkPtr) &|
|00005330| 50 42 29 3b 0d 09 09 7d | 0d 09 09 69 66 20 28 61 |PB);...}|...if (a|
|00005340| 63 74 75 61 6c 54 72 61 | 6e 73 66 65 72 43 6f 75 |ctualTra|nsferCou|
|00005350| 6e 74 20 21 3d 20 4e 55 | 4c 4c 29 0d 09 09 09 2a |nt != NU|LL)....*|
|00005360| 61 63 74 75 61 6c 54 72 | 61 6e 73 66 65 72 43 6f |actualTr|ansferCo|
|00005370| 75 6e 74 20 3d 20 50 42 | 2e 69 6f 41 63 74 43 6f |unt = PB|.ioActCo|
|00005380| 75 6e 74 3b 0d 09 09 69 | 66 20 28 50 42 2e 69 6f |unt;...i|f (PB.io|
|00005390| 52 65 73 75 6c 74 20 3d | 3d 20 69 6f 45 72 72 29 |Result =|= ioErr)|
|000053a0| 0d 09 09 09 67 51 75 69 | 74 4e 6f 77 20 3d 20 54 |....gQui|tNow = T|
|000053b0| 52 55 45 3b 0d 09 09 57 | 72 69 74 65 4c 6f 67 45 |RUE;...W|riteLogE|
|000053c0| 6e 74 72 79 28 0d 09 09 | 09 67 4c 6f 67 52 65 63 |ntry(...|.gLogRec|
|000053d0| 6f 72 64 50 74 72 2c 20 | 27 44 6f 49 4f 27 2c 0d |ordPtr, |'DoIO',.|
|000053e0| 09 09 09 4c 6f 67 46 6f | 72 6d 61 74 35 28 0d 09 |...LogFo|rmat5(..|
|000053f0| 09 09 09 6b 4c 6f 67 46 | 6f 72 6d 61 74 53 69 67 |...kLogF|ormatSig|
|00005400| 6e 65 64 2c 20 6b 4c 6f | 67 46 6f 72 6d 61 74 53 |ned, kLo|gFormatS|
|00005410| 69 67 6e 65 64 2c 20 6b | 4c 6f 67 46 6f 72 6d 61 |igned, k|LogForma|
|00005420| 74 55 6e 73 69 67 6e 65 | 64 2c 0d 09 09 09 09 6b |tUnsigne|d,.....k|
|00005430| 4c 6f 67 46 6f 72 6d 61 | 74 55 6e 73 69 67 6e 65 |LogForma|tUnsigne|
|00005440| 64 2c 20 6b 4c 6f 67 46 | 6f 72 6d 61 74 53 74 72 |d, kLogF|ormatStr|
|00005450| 69 6e 67 0d 09 09 09 29 | 2c 0d 09 09 09 28 73 69 |ing....)|,....(si|
|00005460| 67 6e 65 64 20 6c 6f 6e | 67 29 20 73 74 61 74 75 |gned lon|g) statu|
|00005470| 73 2c 0d 09 09 09 28 73 | 69 67 6e 65 64 20 6c 6f |s,....(s|igned lo|
|00005480| 6e 67 29 20 50 42 2e 69 | 6f 52 65 73 75 6c 74 2c |ng) PB.i|oResult,|
|00005490| 0d 09 09 09 74 72 61 6e | 73 66 65 72 43 6f 75 6e |....tran|sferCoun|
|000054a0| 74 2c 0d 09 09 09 50 42 | 2e 69 6f 41 63 74 43 6f |t,....PB|.ioActCo|
|000054b0| 75 6e 74 2c 0d 09 09 09 | 22 5c 70 44 6f 44 72 69 |unt,....|"\pDoDri|
|000054c0| 76 65 72 69 4f 22 0d 09 | 09 29 3b 0d 09 09 69 66 |veriO"..|.);...if|
|000054d0| 20 28 50 42 2e 69 6f 52 | 65 73 75 6c 74 20 3d 3d | (PB.ioR|esult ==|
|000054e0| 20 73 63 73 69 43 6f 6d | 6d 61 6e 64 54 69 6d 65 | scsiCom|mandTime|
|000054f0| 6f 75 74 29 20 7b 0d 09 | 09 09 73 74 61 74 75 73 |out) {..|..status|
|00005500| 20 3d 20 44 6f 49 4f 52 | 75 6e 64 6f 77 6e 28 29 | = DoIOR|undown()|
|00005510| 3b 0d 09 09 09 67 51 75 | 69 74 4e 6f 77 20 3d 20 |;....gQu|itNow = |
|00005520| 54 52 55 45 3b 0d 09 09 | 7d 0d 09 09 72 65 74 75 |TRUE;...|}...retu|
|00005530| 72 6e 20 28 73 74 61 74 | 75 73 29 3b 0d 23 75 6e |rn (stat|us);.#un|
|00005540| 64 65 66 20 50 42 0d 23 | 75 6e 64 65 66 20 4e 43 |def PB.#|undef NC|
|00005550| 52 0d 7d 0d 0d 2f 2a 0d | 20 2a 20 54 68 65 20 74 |R.}../*.| * The t|
|00005560| 69 6d 65 72 20 66 69 72 | 65 64 20 61 6e 64 20 77 |imer fir|ed and w|
|00005570| 65 20 6d 61 79 20 62 65 | 20 73 74 75 63 6b 20 77 |e may be| stuck w|
|00005580| 69 74 68 20 74 68 65 20 | 62 75 73 20 62 75 73 79 |ith the |bus busy|
|00005590| 2e 20 54 72 79 20 74 6f | 20 72 75 6e 64 6f 77 6e |. Try to| rundown|
|000055a0| 20 49 2f 4f 20 75 73 69 | 6e 67 0d 20 2a 20 6f 75 | I/O usi|ng. * ou|
|000055b0| 72 20 70 72 69 76 61 74 | 65 20 43 6f 6e 74 72 6f |r privat|e Contro|
|000055c0| 6c 20 63 61 6c 6c 2e 20 | 46 6f 72 20 74 68 65 20 |l call. |For the |
|000055d0| 74 69 6d 65 20 62 65 69 | 6e 67 2c 20 77 65 20 64 |time bei|ng, we d|
|000055e0| 6f 6e 27 74 20 61 74 74 | 65 6d 70 74 20 61 6e 6f |on't att|empt ano|
|000055f0| 74 68 65 72 20 74 69 6d | 65 6f 75 74 2e 0d 20 2a |ther tim|eout.. *|
|00005600| 2f 0d 4f 53 45 72 72 0d | 44 6f 49 4f 52 75 6e 64 |/.OSErr.|DoIORund|
|00005610| 6f 77 6e 28 76 6f 69 64 | 29 0d 7b 0d 09 09 4f 53 |own(void|).{...OS|
|00005620| 45 72 72 09 09 09 09 09 | 73 74 61 74 75 73 3b 0d |Err.....|status;.|
|00005630| 09 09 0d 09 09 4e 43 52 | 44 72 69 76 65 72 52 75 |.....NCR|DriverRu|
|00005640| 6e 64 6f 77 6e 50 61 72 | 61 6d 09 70 62 3b 0d 09 |ndownPar|am.pb;..|
|00005650| 09 0d 09 09 43 4c 45 41 | 52 28 70 62 29 3b 0d 09 |....CLEA|R(pb);..|
|00005660| 09 70 62 2e 69 6f 43 52 | 65 66 4e 75 6d 20 3d 20 |.pb.ioCR|efNum = |
|00005670| 67 44 72 69 76 65 72 52 | 65 66 4e 75 6d 3b 0d 09 |gDriverR|efNum;..|
|00005680| 09 70 62 2e 63 73 43 6f | 64 65 20 3d 20 6b 43 6f |.pb.csCo|de = kCo|
|00005690| 6e 74 72 6f 6c 44 6f 53 | 43 53 49 52 75 6e 64 6f |ntrolDoS|CSIRundo|
|000056a0| 77 6e 3b 0d 09 09 70 62 | 2e 77 61 74 63 68 64 6f |wn;...pb|.watchdo|
|000056b0| 67 54 69 6d 65 6f 75 74 | 20 3d 20 6b 4e 6f 53 43 |gTimeout| = kNoSC|
|000056c0| 53 49 54 69 6d 65 6f 75 | 74 3b 0d 09 09 53 68 6f |SITimeou|t;...Sho|
|000056d0| 77 53 74 72 69 6e 67 28 | 22 5c 70 43 61 6c 6c 69 |wString(|"\pCalli|
|000056e0| 6e 67 20 44 6f 49 4f 52 | 75 6e 64 6f 77 6e 22 29 |ng DoIOR|undown")|
|000056f0| 3b 0d 09 09 73 74 61 74 | 75 73 20 3d 20 50 42 43 |;...stat|us = PBC|
|00005700| 6f 6e 74 72 6f 6c 53 79 | 6e 63 28 28 50 61 72 6d |ontrolSy|nc((Parm|
|00005710| 42 6c 6b 50 74 72 29 20 | 26 70 62 29 3b 0d 09 09 |BlkPtr) |&pb);...|
|00005720| 53 68 6f 77 53 74 61 74 | 75 73 53 74 72 69 6e 67 |ShowStat|usString|
|00005730| 28 73 74 61 74 75 73 2c | 20 22 5c 70 44 6f 49 4f |(status,| "\pDoIO|
|00005740| 52 75 6e 64 6f 77 6e 20 | 50 42 43 6f 6e 74 72 6f |Rundown |PBContro|
|00005750| 6c 20 73 74 61 74 75 73 | 22 29 3b 0d 09 09 67 51 |l status|");...gQ|
|00005760| 75 69 74 4e 6f 77 20 3d | 20 54 52 55 45 3b 0d 09 |uitNow =| TRUE;..|
|00005770| 09 72 65 74 75 72 6e 20 | 28 73 74 61 74 75 73 29 |.return |(status)|
|00005780| 3b 0d 7d 0d 0d 75 6e 73 | 69 67 6e 65 64 20 6c 6f |;.}..uns|igned lo|
|00005790| 6e 67 0d 53 43 53 49 47 | 65 74 43 6f 6d 6d 61 6e |ng.SCSIG|etComman|
|000057a0| 64 4c 65 6e 67 74 68 28 | 0d 09 09 63 6f 6e 73 74 |dLength(|...const|
|000057b0| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 09 09 | unsigne|d char..|
|000057c0| 2a 63 6d 64 42 6c 6f 63 | 6b 0d 09 29 0d 7b 0d 09 |*cmdBloc|k..).{..|
|000057d0| 09 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 09 |.unsigne|d long..|
|000057e0| 09 72 65 73 75 6c 74 3b | 0d 09 09 2f 2a 0d 09 09 |.result;|.../*...|
|000057f0| 20 2a 20 4c 6f 6f 6b 20 | 61 74 20 74 68 65 20 22 | * Look |at the "|
|00005800| 67 72 6f 75 70 20 63 6f | 64 65 22 20 69 6e 20 74 |group co|de" in t|
|00005810| 68 65 20 63 6f 6d 6d 61 | 6e 64 20 6f 70 65 72 61 |he comma|nd opera|
|00005820| 74 69 6f 6e 2e 20 52 65 | 74 75 72 6e 20 61 20 70 |tion. Re|turn a p|
|00005830| 61 72 61 6d 65 74 65 72 | 0d 09 09 20 2a 20 65 72 |arameter|... * er|
|00005840| 72 6f 72 20 66 6f 72 20 | 74 68 65 20 72 65 73 65 |ror for |the rese|
|00005850| 72 76 65 64 20 28 33 2c | 20 34 29 20 61 6e 64 20 |rved (3,| 4) and |
|00005860| 76 65 6e 64 6f 72 2d 73 | 70 65 63 69 66 69 63 20 |vendor-s|pecific |
|00005870| 63 6f 6d 6d 61 6e 64 20 | 28 36 2c 20 37 29 0d 09 |command |(6, 7)..|
|00005880| 09 20 2a 20 63 6f 6d 6d | 61 6e 64 20 67 72 6f 75 |. * comm|and grou|
|00005890| 70 73 2e 20 4f 74 68 65 | 72 77 69 73 65 2c 20 73 |ps. Othe|rwise, s|
|000058a0| 65 74 20 74 68 65 20 63 | 6f 6d 6d 61 6e 64 20 6c |et the c|ommand l|
|000058b0| 65 6e 67 74 68 20 66 72 | 6f 6d 20 74 68 65 20 67 |ength fr|om the g|
|000058c0| 72 6f 75 70 20 63 6f 64 | 65 0d 09 09 20 2a 20 76 |roup cod|e... * v|
|000058d0| 61 6c 75 65 20 61 73 20 | 73 70 65 63 69 66 69 65 |alue as |specifie|
|000058e0| 64 20 69 6e 20 74 68 65 | 20 53 43 53 49 2d 49 49 |d in the| SCSI-II|
|000058f0| 20 73 70 65 63 2e 20 54 | 68 65 6e 2c 20 63 6f 70 | spec. T|hen, cop|
|00005900| 79 20 74 68 65 20 63 6f | 6d 6d 61 6e 64 20 62 6c |y the co|mmand bl|
|00005910| 6f 63 6b 0d 09 09 20 2a | 20 69 6e 74 6f 20 74 68 |ock... *| into th|
|00005920| 65 20 70 61 72 61 6d 65 | 74 65 72 20 62 6c 6f 63 |e parame|ter bloc|
|00005930| 6b 20 28 74 68 69 73 20 | 63 65 6e 74 72 61 6c 69 |k (this |centrali|
|00005940| 7a 65 73 20 65 76 65 72 | 79 74 68 69 6e 67 20 66 |zes ever|ything f|
|00005950| 6f 72 20 64 65 62 75 67 | 67 69 6e 67 0d 09 09 20 |or debug|ging... |
|00005960| 2a 20 63 6f 6e 76 65 6e | 69 65 6e 63 65 29 2e 0d |* conven|ience)..|
|00005970| 09 09 20 2a 2f 0d 09 09 | 73 77 69 74 63 68 20 28 |.. */...|switch (|
|00005980| 63 6d 64 42 6c 6f 63 6b | 5b 30 5d 20 26 20 30 78 |cmdBlock|[0] & 0x|
|00005990| 45 30 29 20 7b 0d 09 09 | 63 61 73 65 20 28 30 20 |E0) {...|case (0 |
|000059a0| 3c 3c 20 35 29 3a 09 72 | 65 73 75 6c 74 20 3d 20 |<< 5):.r|esult = |
|000059b0| 36 3b 09 09 62 72 65 61 | 6b 3b 0d 09 09 63 61 73 |6;..brea|k;...cas|
|000059c0| 65 20 28 31 20 3c 3c 20 | 35 29 3a 0d 09 09 63 61 |e (1 << |5):...ca|
|000059d0| 73 65 20 28 32 20 3c 3c | 20 35 29 3a 09 72 65 73 |se (2 <<| 5):.res|
|000059e0| 75 6c 74 20 3d 20 31 30 | 3b 09 62 72 65 61 6b 3b |ult = 10|;.break;|
|000059f0| 0d 09 09 63 61 73 65 20 | 28 35 20 3c 3c 20 35 29 |...case |(5 << 5)|
|00005a00| 3a 09 72 65 73 75 6c 74 | 20 3d 20 31 32 3b 09 62 |:.result| = 12;.b|
|00005a10| 72 65 61 6b 3b 0d 09 09 | 64 65 66 61 75 6c 74 3a |reak;...|default:|
|00005a20| 09 09 72 65 73 75 6c 74 | 20 3d 20 30 3b 09 09 62 |..result| = 0;..b|
|00005a30| 72 65 61 6b 3b 09 09 2f | 2a 20 54 68 69 73 20 72 |reak;../|* This r|
|00005a40| 65 73 75 6c 74 73 20 69 | 6e 20 61 6e 20 65 72 72 |esults i|n an err|
|00005a50| 6f 72 09 2a 2f 0d 09 09 | 7d 0d 09 09 72 65 74 75 |or.*/...|}...retu|
|00005a60| 72 6e 20 28 72 65 73 75 | 6c 74 29 3b 0d 7d 0d 0d |rn (resu|lt);.}..|
|00005a70| 0d 42 6f 6f 6c 65 61 6e | 0d 53 68 6f 77 52 65 71 |.Boolean|.ShowReq|
|00005a80| 75 65 73 74 53 65 6e 73 | 65 28 0d 09 09 75 6e 73 |uestSens|e(...uns|
|00005a90| 69 67 6e 65 64 20 73 68 | 6f 72 74 09 09 09 74 61 |igned sh|ort...ta|
|00005aa0| 72 67 65 74 49 44 2c 09 | 09 09 2f 2a 20 53 43 53 |rgetID,.|../* SCS|
|00005ab0| 49 20 42 75 73 20 49 44 | 09 09 09 09 09 2a 2f 0d |I Bus ID|.....*/.|
|00005ac0| 09 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |..unsign|ed short|
|00005ad0| 09 09 09 74 61 72 67 65 | 74 4c 55 4e 2c 09 09 09 |...targe|tLUN,...|
|00005ae0| 2f 2a 20 53 43 53 49 20 | 4c 55 4e 20 2d 2d 20 6e |/* SCSI |LUN -- n|
|00005af0| 6f 74 20 73 75 70 70 6f | 72 74 65 64 09 2a 2f 0d |ot suppo|rted.*/.|
|00005b00| 09 09 4f 53 45 72 72 09 | 09 09 09 09 63 61 6c 6c |..OSErr.|....call|
|00005b10| 53 74 61 74 75 73 2c 09 | 09 09 2f 2a 20 44 6f 44 |Status,.|../* DoD|
|00005b20| 72 69 76 65 72 49 4f 20 | 52 65 71 75 65 73 74 20 |riverIO |Request |
|00005b30| 53 65 6e 73 65 09 09 2a | 2f 0d 09 09 63 6f 6e 73 |Sense..*|/...cons|
|00005b40| 74 20 53 43 53 49 5f 53 | 65 6e 73 65 5f 44 61 74 |t SCSI_S|ense_Dat|
|00005b50| 61 09 2a 73 65 6e 73 65 | 2c 0d 09 09 75 6e 73 69 |a.*sense|,...unsi|
|00005b60| 67 6e 65 64 20 6c 6f 6e | 67 09 09 09 61 63 74 75 |gned lon|g...actu|
|00005b70| 61 6c 54 72 61 6e 73 66 | 65 72 43 6f 75 6e 74 0d |alTransf|erCount.|
|00005b80| 09 29 0d 7b 0d 09 09 42 | 6f 6f 6c 65 61 6e 09 09 |.).{...B|oolean..|
|00005b90| 09 09 09 72 65 73 75 6c | 74 3b 0d 09 09 53 74 72 |...resul|t;...Str|
|00005ba0| 32 35 35 09 09 09 09 09 | 77 6f 72 6b 3b 0d 09 09 |255.....|work;...|
|00005bb0| 73 74 61 74 69 63 20 63 | 6f 6e 73 74 20 53 74 72 |static c|onst Str|
|00005bc0| 69 6e 67 50 74 72 20 67 | 53 65 6e 73 65 4b 65 79 |ingPtr g|SenseKey|
|00005bd0| 54 65 78 74 5b 5d 20 3d | 20 7b 0d 09 09 09 22 5c |Text[] =| {...."\|
|00005be0| 70 20 4e 6f 20 65 72 72 | 6f 72 22 2c 0d 09 09 09 |p No err|or",....|
|00005bf0| 22 5c 70 20 52 65 63 6f | 76 65 72 65 64 20 65 72 |"\p Reco|vered er|
|00005c00| 72 6f 72 22 2c 0d 09 09 | 09 22 5c 70 20 4e 6f 74 |ror",...|."\p Not|
|00005c10| 20 72 65 61 64 79 22 2c | 0d 09 09 09 22 5c 70 20 | ready",|...."\p |
|00005c20| 4d 65 64 69 75 6d 20 65 | 72 72 6f 72 22 2c 0d 09 |Medium e|rror",..|
|00005c30| 09 09 22 5c 70 20 48 61 | 72 64 77 61 72 65 20 65 |.."\p Ha|rdware e|
|00005c40| 72 72 6f 72 22 2c 0d 09 | 09 09 22 5c 70 20 49 6c |rror",..|.."\p Il|
|00005c50| 6c 65 67 61 6c 20 72 65 | 71 75 65 73 74 22 2c 0d |legal re|quest",.|
|00005c60| 09 09 09 22 5c 70 20 55 | 6e 69 74 20 61 74 74 65 |..."\p U|nit atte|
|00005c70| 6e 74 69 6f 6e 22 2c 0d | 09 09 09 22 5c 70 20 44 |ntion",.|..."\p D|
|00005c80| 61 74 61 20 70 72 6f 74 | 65 63 74 69 6f 6e 22 2c |ata prot|ection",|
|00005c90| 0d 09 09 09 22 5c 70 20 | 42 6c 61 6e 6b 20 63 68 |...."\p |Blank ch|
|00005ca0| 65 63 6b 22 2c 09 0d 09 | 09 09 22 5c 70 20 56 65 |eck",...|.."\p Ve|
|00005cb0| 6e 64 6f 72 20 73 70 65 | 63 69 66 69 63 22 2c 0d |ndor spe|cific",.|
|00005cc0| 09 09 09 22 5c 70 20 43 | 6f 70 79 20 61 62 6f 72 |..."\p C|opy abor|
|00005cd0| 74 65 64 22 2c 0d 09 09 | 09 22 5c 70 20 43 6f 6d |ted",...|."\p Com|
|00005ce0| 6d 61 6e 64 20 61 62 6f | 72 74 65 64 22 2c 0d 09 |mand abo|rted",..|
|00005cf0| 09 09 22 5c 70 20 43 6f | 6d 70 61 72 65 20 65 71 |.."\p Co|mpare eq|
|00005d00| 75 61 6c 22 2c 09 0d 09 | 09 09 22 5c 70 20 56 6f |ual",...|.."\p Vo|
|00005d10| 6c 75 6d 65 20 6f 76 65 | 72 66 6c 6f 77 22 2c 0d |lume ove|rflow",.|
|00005d20| 09 09 09 22 5c 70 20 4d | 69 73 63 6f 6d 70 61 72 |..."\p M|iscompar|
|00005d30| 65 22 2c 0d 09 09 09 22 | 5c 70 20 52 65 73 65 72 |e",...."|\p Reser|
|00005d40| 76 65 64 22 0d 09 09 7d | 3b 0d 23 64 65 66 69 6e |ved"...}|;.#defin|
|00005d50| 65 20 53 45 4e 53 45 20 | 28 2a 73 65 6e 73 65 29 |e SENSE |(*sense)|
|00005d60| 0d 0d 09 09 72 65 73 75 | 6c 74 20 3d 20 46 41 4c |....resu|lt = FAL|
|00005d70| 53 45 3b 0d 09 09 57 72 | 69 74 65 4c 6f 67 45 6e |SE;...Wr|iteLogEn|
|00005d80| 74 72 79 28 67 4c 6f 67 | 52 65 63 6f 72 64 50 74 |try(gLog|RecordPt|
|00005d90| 72 2c 20 27 53 65 6e 73 | 27 2c 0d 09 09 09 4c 6f |r, 'Sens|',....Lo|
|00005da0| 67 46 6f 72 6d 61 74 35 | 28 6b 4c 6f 67 46 6f 72 |gFormat5|(kLogFor|
|00005db0| 6d 61 74 55 6e 73 69 67 | 6e 65 64 2c 20 6b 4c 6f |matUnsig|ned, kLo|
|00005dc0| 67 46 6f 72 6d 61 74 55 | 6e 73 69 67 6e 65 64 2c |gFormatU|nsigned,|
|00005dd0| 0d 09 09 09 09 6b 4c 6f | 67 46 6f 72 6d 61 74 53 |.....kLo|gFormatS|
|00005de0| 69 67 6e 65 64 2c 20 6b | 4c 6f 67 46 6f 72 6d 61 |igned, k|LogForma|
|00005df0| 74 55 6e 73 69 67 6e 65 | 64 2c 20 6b 4c 6f 67 46 |tUnsigne|d, kLogF|
|00005e00| 6f 72 6d 61 74 53 74 72 | 69 6e 67 29 2c 0d 09 09 |ormatStr|ing),...|
|00005e10| 09 28 55 49 6e 74 33 32 | 29 20 74 61 72 67 65 74 |.(UInt32|) target|
|00005e20| 49 44 2c 20 28 55 49 6e | 74 33 32 29 20 74 61 72 |ID, (UIn|t32) tar|
|00005e30| 67 65 74 4c 55 4e 2c 20 | 28 53 49 6e 74 33 32 29 |getLUN, |(SInt32)|
|00005e40| 20 63 61 6c 6c 53 74 61 | 74 75 73 2c 0d 09 09 09 | callSta|tus,....|
|00005e50| 28 55 49 6e 74 33 32 29 | 20 61 63 74 75 61 6c 54 |(UInt32)| actualT|
|00005e60| 72 61 6e 73 66 65 72 43 | 6f 75 6e 74 2c 0d 09 09 |ransferC|ount,...|
|00005e70| 09 22 5c 70 62 75 73 20 | 6c 75 6e 20 73 74 61 74 |."\pbus |lun stat|
|00005e80| 20 74 72 61 6e 73 22 0d | 09 09 29 3b 0d 09 09 69 | trans".|..);...i|
|00005e90| 66 20 28 61 63 74 75 61 | 6c 54 72 61 6e 73 66 65 |f (actua|lTransfe|
|00005ea0| 72 43 6f 75 6e 74 20 21 | 3d 20 73 69 7a 65 6f 66 |rCount !|= sizeof|
|00005eb0| 20 53 45 4e 53 45 29 20 | 7b 0d 09 09 09 57 72 69 | SENSE) |{....Wri|
|00005ec0| 74 65 4c 6f 67 45 6e 74 | 72 79 28 67 4c 6f 67 52 |teLogEnt|ry(gLogR|
|00005ed0| 65 63 6f 72 64 50 74 72 | 2c 20 27 53 65 6e 73 27 |ecordPtr|, 'Sens'|
|00005ee0| 2c 0d 09 09 09 09 4c 6f | 67 46 6f 72 6d 61 74 33 |,.....Lo|gFormat3|
|00005ef0| 28 6b 4c 6f 67 46 6f 72 | 6d 61 74 55 6e 73 69 67 |(kLogFor|matUnsig|
|00005f00| 6e 65 64 2c 20 6b 4c 6f | 67 46 6f 72 6d 61 74 55 |ned, kLo|gFormatU|
|00005f10| 6e 73 69 67 6e 65 64 2c | 20 6b 4c 6f 67 46 6f 72 |nsigned,| kLogFor|
|00005f20| 6d 61 74 53 74 72 69 6e | 67 29 2c 0d 09 09 09 09 |matStrin|g),.....|
|00005f30| 28 55 49 6e 74 33 32 29 | 20 61 63 74 75 61 6c 54 |(UInt32)| actualT|
|00005f40| 72 61 6e 73 66 65 72 43 | 6f 75 6e 74 2c 20 28 55 |ransferC|ount, (U|
|00005f50| 49 6e 74 33 32 29 20 73 | 69 7a 65 6f 66 20 53 45 |Int32) s|izeof SE|
|00005f60| 4e 53 45 2c 0d 09 09 09 | 09 22 5c 70 52 65 61 64 |NSE,....|."\pRead|
|00005f70| 2c 20 73 69 7a 65 6f 66 | 20 73 65 6e 73 65 22 0d |, sizeof| sense".|
|00005f80| 09 09 09 29 3b 0d 09 09 | 7d 0d 09 09 53 68 6f 77 |...);...|}...Show|
|00005f90| 4d 65 6d 6f 72 79 28 28 | 50 74 72 29 20 26 53 45 |Memory((|Ptr) &SE|
|00005fa0| 4e 53 45 2c 20 61 63 74 | 75 61 6c 54 72 61 6e 73 |NSE, act|ualTrans|
|00005fb0| 66 65 72 43 6f 75 6e 74 | 29 3b 0d 09 09 50 53 74 |ferCount|);...PSt|
|00005fc0| 72 43 6f 70 79 28 77 6f | 72 6b 2c 20 22 5c 70 53 |rCopy(wo|rk, "\pS|
|00005fd0| 65 6e 73 65 3a 20 22 29 | 3b 0d 09 09 41 70 70 65 |ense: ")|;...Appe|
|00005fe0| 6e 64 48 65 78 4c 65 61 | 64 69 6e 67 5a 65 72 6f |ndHexLea|dingZero|
|00005ff0| 73 28 77 6f 72 6b 2c 20 | 53 45 4e 53 45 2e 65 72 |s(work, |SENSE.er|
|00006000| 72 6f 72 43 6f 64 65 2c | 20 32 29 3b 0d 09 09 69 |rorCode,| 2);...i|
|00006010| 66 20 28 28 53 45 4e 53 | 45 2e 65 72 72 6f 72 43 |f ((SENS|E.errorC|
|00006020| 6f 64 65 20 26 20 6b 53 | 63 73 69 53 65 6e 73 65 |ode & kS|csiSense|
|00006030| 49 6e 66 6f 4d 61 73 6b | 29 20 21 3d 20 6b 53 63 |InfoMask|) != kSc|
|00006040| 73 69 53 65 6e 73 65 49 | 6e 66 6f 56 61 6c 69 64 |siSenseI|nfoValid|
|00006050| 29 0d 09 09 09 50 53 74 | 72 43 61 74 28 77 6f 72 |)....PSt|rCat(wor|
|00006060| 6b 2c 20 22 5c 70 20 49 | 6e 76 61 6c 69 64 20 53 |k, "\p I|nvalid S|
|00006070| 65 6e 73 65 22 29 3b 0d | 09 09 65 6c 73 65 20 7b |ense");.|..else {|
|00006080| 0d 09 09 09 50 53 74 72 | 43 61 74 28 77 6f 72 6b |....PStr|Cat(work|
|00006090| 2c 20 67 53 65 6e 73 65 | 4b 65 79 54 65 78 74 5b |, gSense|KeyText[|
|000060a0| 53 45 4e 53 45 2e 73 65 | 6e 73 65 4b 65 79 20 26 |SENSE.se|nseKey &|
|000060b0| 20 6b 53 63 73 69 53 65 | 6e 73 65 4b 65 79 4d 61 | kScsiSe|nseKeyMa|
|000060c0| 73 6b 5d 29 3b 0d 09 09 | 09 69 66 20 28 28 53 45 |sk]);...|.if ((SE|
|000060d0| 4e 53 45 2e 73 65 6e 73 | 65 4b 65 79 20 26 20 6b |NSE.sens|eKey & k|
|000060e0| 53 63 73 69 53 65 6e 73 | 65 49 4c 49 29 20 21 3d |ScsiSens|eILI) !=|
|000060f0| 20 30 29 0d 09 09 09 09 | 50 53 74 72 43 61 74 28 | 0).....|PStrCat(|
|00006100| 77 6f 72 6b 2c 20 22 5c | 70 20 49 4c 49 22 29 3b |work, "\|p ILI");|
|00006110| 0d 09 09 09 69 66 20 28 | 28 53 45 4e 53 45 2e 73 |....if (|(SENSE.s|
|00006120| 65 6e 73 65 4b 65 79 20 | 26 20 6b 53 63 73 69 53 |enseKey |& kScsiS|
|00006130| 65 6e 73 65 45 4f 4d 29 | 20 21 3d 20 30 29 0d 09 |enseEOM)| != 0)..|
|00006140| 09 09 09 50 53 74 72 43 | 61 74 28 77 6f 72 6b 2c |...PStrC|at(work,|
|00006150| 20 22 5c 70 20 45 4f 4d | 22 29 3b 0d 09 09 09 69 | "\p EOM|");....i|
|00006160| 66 20 28 28 53 45 4e 53 | 45 2e 73 65 6e 73 65 4b |f ((SENS|E.senseK|
|00006170| 65 79 20 26 20 6b 53 63 | 73 69 53 65 6e 73 65 46 |ey & kSc|siSenseF|
|00006180| 69 6c 65 4d 61 72 6b 29 | 20 21 3d 20 30 29 0d 09 |ileMark)| != 0)..|
|00006190| 09 09 09 50 53 74 72 43 | 61 74 28 77 6f 72 6b 2c |...PStrC|at(work,|
|000061a0| 20 22 5c 70 20 45 4f 46 | 22 29 3b 0d 09 09 09 57 | "\p EOF|");....W|
|000061b0| 72 69 74 65 4c 6f 67 45 | 6e 74 72 79 28 67 4c 6f |riteLogE|ntry(gLo|
|000061c0| 67 52 65 63 6f 72 64 50 | 74 72 2c 20 27 53 65 6e |gRecordP|tr, 'Sen|
|000061d0| 73 27 2c 20 6b 4c 6f 67 | 46 6f 72 6d 61 74 53 74 |s', kLog|FormatSt|
|000061e0| 72 69 6e 67 2c 20 77 6f | 72 6b 29 3b 0d 09 09 09 |ring, wo|rk);....|
|000061f0| 77 6f 72 6b 5b 30 5d 20 | 3d 20 30 3b 0d 09 09 09 |work[0] |= 0;....|
|00006200| 41 70 70 65 6e 64 48 65 | 78 4c 65 61 64 69 6e 67 |AppendHe|xLeading|
|00006210| 5a 65 72 6f 73 28 77 6f | 72 6b 2c 20 53 45 4e 53 |Zeros(wo|rk, SENS|
|00006220| 45 2e 61 64 64 69 74 69 | 6f 6e 61 6c 53 65 6e 73 |E.additi|onalSens|
|00006230| 65 43 6f 64 65 20 26 20 | 30 78 46 46 2c 20 32 29 |eCode & |0xFF, 2)|
|00006240| 3b 0d 09 09 09 50 53 74 | 72 43 61 74 28 77 6f 72 |;....PSt|rCat(wor|
|00006250| 6b 2c 20 22 5c 70 20 22 | 29 3b 0d 09 09 09 41 70 |k, "\p "|);....Ap|
|00006260| 70 65 6e 64 48 65 78 4c | 65 61 64 69 6e 67 5a 65 |pendHexL|eadingZe|
|00006270| 72 6f 73 28 77 6f 72 6b | 2c 20 53 45 4e 53 45 2e |ros(work|, SENSE.|
|00006280| 61 64 64 69 74 69 6f 6e | 61 6c 53 65 6e 73 65 51 |addition|alSenseQ|
|00006290| 75 61 6c 69 66 69 65 72 | 20 26 20 30 78 46 46 2c |ualifier| & 0xFF,|
|000062a0| 20 32 29 3b 0d 09 09 09 | 50 53 74 72 43 61 74 28 | 2);....|PStrCat(|
|000062b0| 77 6f 72 6b 2c 20 22 5c | 70 20 41 53 43 20 41 53 |work, "\|p ASC AS|
|000062c0| 51 22 29 3b 0d 09 09 09 | 72 65 73 75 6c 74 20 3d |Q");....|result =|
|000062d0| 20 28 28 53 45 4e 53 45 | 2e 73 65 6e 73 65 4b 65 | ((SENSE|.senseKe|
|000062e0| 79 20 26 20 6b 53 63 73 | 69 53 65 6e 73 65 4b 65 |y & kScs|iSenseKe|
|000062f0| 79 4d 61 73 6b 29 20 3d | 3d 20 6b 53 63 73 69 53 |yMask) =|= kScsiS|
|00006300| 65 6e 73 65 55 6e 69 74 | 41 74 6e 29 3b 0d 09 09 |enseUnit|Atn);...|
|00006310| 7d 0d 09 09 57 72 69 74 | 65 4c 6f 67 45 6e 74 72 |}...Writ|eLogEntr|
|00006320| 79 28 67 4c 6f 67 52 65 | 63 6f 72 64 50 74 72 2c |y(gLogRe|cordPtr,|
|00006330| 20 27 53 65 6e 73 27 2c | 20 6b 4c 6f 67 46 6f 72 | 'Sens',| kLogFor|
|00006340| 6d 61 74 53 74 72 69 6e | 67 2c 20 77 6f 72 6b 29 |matStrin|g, work)|
|00006350| 3b 0d 09 09 72 65 74 75 | 72 6e 20 28 72 65 73 75 |;...retu|rn (resu|
|00006360| 6c 74 29 3b 0d 23 75 6e | 64 65 66 20 53 45 4e 53 |lt);.#un|def SENS|
|00006370| 45 0d 7d 0d 0d 0d 76 6f | 69 64 0d 53 68 6f 77 4d |E.}...vo|id.ShowM|
|00006380| 65 6d 6f 72 79 28 0d 09 | 09 63 6f 6e 73 74 20 50 |emory(..|.const P|
|00006390| 74 72 09 09 09 09 6d 65 | 6d 53 74 61 72 74 2c 0d |tr....me|mStart,.|
|000063a0| 09 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 09 |..unsign|ed long.|
|000063b0| 09 09 62 79 74 65 43 6f | 75 6e 74 0d 09 29 0d 7b |..byteCo|unt..).{|
|000063c0| 0d 09 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |...unsig|ned long|
|000063d0| 09 09 09 73 74 61 72 74 | 49 6e 64 65 78 3b 0d 09 |...start|Index;..|
|000063e0| 09 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 09 |.unsigne|d long..|
|000063f0| 09 65 6e 64 49 6e 64 65 | 78 3b 0d 09 09 75 6e 73 |.endInde|x;...uns|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.